Javascript 访问文本字段的同级变量

Javascript 访问文本字段的同级变量,javascript,ajax,Javascript,Ajax,我有一个简单的表单,只有一个文本字段,其中包含来自MySQL数据库的电子邮件。用户有两个按钮,一个按钮可以用替换的内容完全更新电子邮件,另一个按钮可以选择将电子邮件返回到默认状态,即原始电子邮件。如果你有两个按钮与相关文本字段立即“原位”,一切正常。但是,如果你把“重置”按钮放在一个单独的表格单元格中,“onlick”将电子邮件设置回默认功能将停止工作,我不知道如何修复它 它的工作原理是这样的,因为“重置”按钮位于文本字段旁边: <input name="cc_email" type="

我有一个简单的表单,只有一个文本字段,其中包含来自MySQL数据库的电子邮件。用户有两个按钮,一个按钮可以用替换的内容完全更新电子邮件,另一个按钮可以选择将电子邮件返回到默认状态,即原始电子邮件。如果你有两个按钮与相关文本字段立即“原位”,一切正常。但是,如果你把“重置”按钮放在一个单独的表格单元格中,“onlick”将电子邮件设置回默认功能将停止工作,我不知道如何修复它

它的工作原理是这样的,因为“重置”按钮位于文本字段旁边:

<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" />
<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>
”);
$('update_cc')。提交();
返回false;
});
但是,如果我将“重置”按钮放在单独的表格单元格中,如下所示,该函数将停止工作,好像它无法再访问文本字段一样:

<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" />
<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>

.sibbins()
函数在同一父级中的同级集合中搜索。如果你把他们分为不同的父母,那么他们就不是兄弟姐妹了。尝试将其替换为以下内容:

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

如果输入始终与按钮位于同一个
tr
中,则在行中搜索输入字段:

$('#重置cc')。单击(函数(){
$(this).closest('tr').find('input[name=“cc_email”]”).val('original@example.com');
$('update_cc')。提交();
返回false;
});

您的问题在于:

$(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")...
//这个位|
//五

不客气!ID通常是最好的选择,当你只有一个东西的时候。其他选择器和方法用于执行直接ID或类无法完成的更复杂的操作。没有理由使用它们,除非你真的需要。否则,您将得到一个Rube Goldberg jQuery调用。