我有一个简单的表单,只有一个文本字段,其中包含来自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,以便它仍然可以访问文本字段,即使它现在由表格单元格分隔,但我不知道如何操作。
答案 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.'%');
,请在行中搜索输入字段:
tr
&#13;
$('#reset-cc').click(function() {
$(this).closest('tr').find('input[name="cc_email"]').val('original@example.com');
$('#update_cc').submit();
return false;
});
&#13;