1

我有一个有多种形式的网页。我正在尝试找到其中包含“添加”按钮的表单,然后为表单分配一个 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”......?

谢谢。

4

3 回答 3

2

选择:contains器不适合这里,因为它搜索的是元素内部文本,而不是值。

尝试属性等于选择器

var $callroute_form = $("input[value='Add']").closest("form");

:contains文档中:

包含选择器

描述:选择所有包含指定文本的元素。

于 2013-09-02T20:21:14.557 回答
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');
于 2013-09-02T20:22:48.800 回答
0

选择所有表单并根据输入按钮过滤表单。现在,对表格做任何你想做的事情。

$('form').filter( function() {
  return $(this).find("input[value='Add']").length == 1;
}).attr('id', 'callroute_form' )';
于 2013-09-02T20:27:43.020 回答