访问文本字段的兄弟变量

时间:2015-12-18 16:33:53

标签: javascript ajax

我有一个简单的表单,只有一个文本字段,其中包含来自MySQL数据库的电子邮件。用户有2个按钮,可以用他们替换它的内容完全更新电子邮件,或者他们可以选择将电子邮件返回到默认状态,即原始电子邮件。如果您立即拥有2个按钮,就可以正常工作了#39;与相关的文本字段。但如果你把'重置''按钮在一个单独的表格单元格中,' onlick' set-email-back-to-default功能停止工作,我不明白如何修复它。

它会像这样工作,因为重置按钮在文本字段旁边是一个slap-bang:

<input name="cc_email"  type="text"  value="<?php echo !empty($_SESSION["cc-email"]) ? $_SESSION["cc-email"] : $_SESSION['admin_username'];?>" />  
<input id="reset-cc" name="add" type="button" value="Set to default" />

以下是JavaScript:

$(document).ready(function() {
    $('#reset-cc').click(function() {
        $(this).siblings('input[name="cc_email"]').val('<?php echo $_SESSION['admin_username'] ?>');
        $('#update_cc').submit();

        return false;
    });

但是,如果我将重置按钮放在一个单独的表格单元格中,如下所示,该功能将停止工作,就好像它无法再访问文本字段一样:

<td>    
  <input name="cc_email" type="text"  value="<?php echo !empty($_SESSION["cc-email"]) ? $_SESSION["cc-email"] : $_SESSION['admin_username'];?>"   />  
</td>
<td>
  <input id="reset-cc" name="add" type="button" value="Set to default" />
</td>

我假设我需要修改JavaScript,以便它仍然可以访问文本字段,即使它现在由表格单元格分隔,但我不知道如何操作。

3 个答案:

答案 0 :(得分:2)

你的问题在于:

$(this).siblings('input[name="cc_email"]')

通过将输入按钮移动到不同的TD,它不再是兄弟姐妹(正如其他答案所示)。您可能只想给按钮一个ID并以这种方式引用它:

    //this bit |
    //         v
<input id="cc_email" name="cc_email" type="text"  value="<?php echo !empty($_SESSION["cc-email"]) ? $_SESSION["cc-email"] : $_SESSION['admin_username'];?>"   />
//...
$("#cc_email")...

这比进行复杂的父/查找呼叫更容易。这个按钮唯一的,不是吗?

答案 1 :(得分:0)

.siblings()函数搜索同一父级中的兄弟姐妹集合。如果你把他们放到不同的父母那里,那么他们不是兄弟姐妹。尝试用以下内容替换它:

$(this).parent().prev().find('input[name="cc_email"]').val('<?php echo $_SESSION['admin_username'] ?>');

答案 2 :(得分:0)

如果输入始终与按钮位于同一$repo = $em->getRepository('AppBundle:Recipe'); $query = $em->createQueryBuilder('r') ->leftJoin('r.tipologia', 't') ->where('t.name LIKE :data') ->setParameter('data', '%'.$data.'%'); ,请在行中搜索输入字段:

&#13;
&#13;
tr
&#13;
$('#reset-cc').click(function() {
  $(this).closest('tr').find('input[name="cc_email"]').val('original@example.com');
  $('#update_cc').submit();

  return false;
});
&#13;
&#13;
&#13;

相关问题