【问题标题】:JQuery selector form element php arrayjQuery选择器表单元素php数组
【发布时间】:2011-10-12 08:34:52
【问题描述】:

我试图使用下面的代码来选择一个表单元素(我检索值以验证文本)

$('#box1 [name=item[]]').val();
$('#box2 [name=item[]]').val();

我正在尝试获取以下值

<form..>
   <div id='box1'> <input type='text' name='item[]'/> </div>
   <div id='box1'> <input type='text' name='item[]'/> </div>
</form>

我需要使用带有方括号 [] 的 'item[]' 因为 php 可以将此数据作为数组检索

$data = $_REQUEST['item'];

将返回一个包含 'item' 中所有数据的数组

问题是 $('#box [name=item[]]').val() 不起作用,我该如何让它起作用或有其他方法吗?

【问题讨论】:

标签: jquery escaping selector character


【解决方案1】:

您需要在 jQuery 选择器中转义 [],因为它们具有特殊含义(属性选择器):

$('#box1 [name="item\\[\\]"]').val();
$('#box2 [name="item\\[\\]"]').val();

jQuery documentation states:

如果您希望使用任何元字符(例如 !"#$%&'()*+,./:;?@[]^`{|}~ )作为文字作为名称的一部分,您必须使用两个反斜杠转义该字符:\.

【讨论】:

    【解决方案2】:

    如果你可以给输入一个类名,比如“input_item”,然后

    $("input.input_item").each(function() {
    
        // do something with $(this).val()
    });
    

    【讨论】:

      【解决方案3】:

      试试 -

      $('#box1 input[name="item[]"]').val()
      

      我刚刚在“名称”值周围添加了双引号,并将“输入”选择器添加到选择器值中。

      演示 - http://jsfiddle.net/ipr101/JbW5m/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-22
        相关资源
        最近更新 更多