jQuery访问表单数组

时间:2010-11-17 11:21:04

标签: php jquery

我有一个PHP表单,我想显示或隐藏某些字段,这取决于我在下拉菜单中选择的内容。 我的代码如下:

$(document).ready(function() {
    $('div.pupname').hide();
    $('div.pupnid').hide();

    if ($("#perpetrator").val == "1") {
        $('div.pupname').hide();
        $('div.pupid').show();
        else {
            $('div.pupid').hide();
            $('div.pupname').show();
        }

        $("#perpetrator").change(function() {
            if ($("#perpetrator").val() == "1") {
                $('div.pupname').hide();
                $('div.pupid').show();
                else {
                    $('div.pupid').hide();
                    $('div.pupname').show();
                }
            });

        });

我现在想要一个多行块,我使用php生成,所以我可以生成div作为 pupid1 pupid2 等和字段{{1作为一个数组。我已经尝试了几种方法来访问数组,但无法获得任何工作。我认为他跟随可能沿着正确的行访问数组的元素,但它没有做任何事情。

$m_perpetrator

以下是HTML的摘录

if ($("#m_perpetrator[1]").val == "1") {
    $('div.pupname1').show();
    $('div.pupid1').hide();
}
else {
    $('div.pupid1').show();
    $('div.pupname1').hide();
}

所以基本上这是一个多行形式,如果选择了Current,则每行都会显示pupil_id,如果选择了其他任何内容,那么我想显示瞳孔名称。 为了处理输入,我使用php运行数组m_perpetrator [] 吉姆

2 个答案:

答案 0 :(得分:-1)

不完全确定你需要什么。你有多个具有相同id m_perpetrator的元素吗?

使用类而不是你应该这样做

if ($($(".m_perpetrator")[1]).val() == "1") {
    $('div.pupname1').show();
    $('div.pupid1').hide();
}
else {
    $('div.pupid1').show();
    $('div.pupname1').hide();
}

否则html中的m_perpetrator是什么?

答案 1 :(得分:-1)

您不能在id属性中使用“[”或“]”。我建议你输出一个像这样的列表元素:

<ul id="whatevers">
    <li><input name="whatever1" /></li>
    <li><input name="whatever2" /></li>
    <li><input name="whatever3" /></li>
<ul>

然后您可以使用jquery访问它们:

var ws = $("#whatevers input");
for(var i=0; i< ws.length; ++i){
    ws.eq(i).doSomething();
}