我有一个包含多个表单的网页。 我正在尝试找到其中包含“添加”按钮的表单,然后为表单分配一个id。 然后我需要在这个命名形式中找到一个元素......一个输入元素,并为其赋值。
所以,例如,我有以下测试HTML:
<H1>Add A Call Route</H1><DL>
<form action="myapp/controller/addcallroute" method="POST">
<input class=" text" type="text" name="contact_details" value="" id="contact_details" >
<input class=" hidden" type="hidden" name="rule_id" value="" id="rule_id" >
<input class="submit" type="submit" name="submit" value="Add">
</FORM>
这是我试图用来查找正确表单的代码..并为其分配一个ID:
var $callroute_form = $(":contains('Add')").closest("form");
$callroute_form.attr('id',"callroute_form");
当我在控制台中调试并尝试查看$(“#callroute_form”)的值是什么时,我只是得到“[]”。
最终,我需要做的是为“rule_id”字段赋值。但我有多个形式的多个rule_id字段... 或者,我想我很好地尝试寻找“添加”按钮,并填充最接近它的“rule_id”..?
感谢。
答案 0 :(得分:2)
:contains
选择器不适合此处,因为它会搜索元素内部文本,而不是值。
var $callroute_form = $("input[value='Add']").closest("form");
来自:contains
文档:
包含选择器
说明:选择包含指定文字的所有元素。
答案 1 :(得分:1)
按照您解释的方式查找表单并为其添加ID:
// first method:
$('input[value="Add"]').parent().attr('id',"callroute_form");
// second method:
$('input[value="Add"]').closest('form').attr('id',"callroute_form");
要查找此表单中的元素并编辑值:
$('#callroute_form').find('input[name"rule_id"]').val('newvalue');
答案 2 :(得分:0)
选择所有表单并根据输入按钮过滤表单。现在,做你想做的任何表格。
$('form').filter( function() {
return $(this).find("input[value='Add']").length == 1;
}).attr('id', 'callroute_form' )';