Jquery获取select表单项的值

时间:2013-04-11 13:22:55

标签: php javascript jquery html

是的,所以我在页面上有多个这样的表单(编辑,因为我不清楚这是在PHP中使用的,我在PHP和echo标签中添加了):

 <?PHP
 echo "<form action="" method="post" id="form$field2">";
 echo "<select id="popup" name="state" >";
 echo "<option class="apple-hidden" value="$statitem1">$statitem1</option>";
 echo "<option class="apple-hidden" value="$statitem2">$statitem2</option>";
 echo "<option class="apple-hidden" value="$statitem3">$statitem3</option>";
 echo "<option class="apple-hidden" value="$statitem4">$statitem4</option>";
 echo "<option class="apple-hidden" value="$statitem5">$statitem5</option>";
 echo "<option class="apple-hidden" value="$statitem6">$statitem6</option>";
 echo "<option class="apple-hidden" value="$statitem7">$statitem7</option>";
 echo "<option class="apple-hidden" value="$statitem8">$statitem8</option>";
 echo "<option class="apple-hidden" value="$statitem9">$statitem9</option>";
 echo "</select>";
 echo "<input type="hidden" name="bnum" value="$field2,$user">";
 echo "</form>";
 ?>

我有一些javascript,所以无论什么时候更改表单,它都会使用AJAX提交POST数据并转换表格单元格,表格包含绿色。

<script type="text/javascript">
    var bnum;
    bnum = '$formname',

    $('form').change(function() {
        console.log(bnum);      

        $.ajax("http://myApp.example.org/alert?title=Test%20from%20AJAX&message=this%20is%20a%20message%20from%20an%20AJAX%20request");
        $(this).closest("td").css("background", "#01DF01");

        $.ajax({ 
            type: 'post',
            url: 'process.php?item1=$urlvar3',
            data: $(this).serialize(),
            success: function() {
            }
        });
        return false;
    });  
</script>

现在我想要做的是获取下拉列表的新值并将其打印到控制台。我试过了:

 console.log($("#popup").val());

有效,但仅适用于页面上的第一个表单。我希望能够做的是从我提交的表单中获取数据,所以我尝试了:

 console.log($(this).val());

但是这会返回NULL。

任何帮助都一如既往地受到赞赏。

4 个答案:

答案 0 :(得分:0)

尝试替换

$('form').change(function() 

$('#popup').change(function() 

答案 1 :(得分:0)

试试这个:

console.log($(this).find("#popup").val());

答案 2 :(得分:0)

id在文档中应该是唯一的。

更好的访问者将是

$('#popup',this)

或没有重复的id(假设只有一个选择)

$('select',this)

答案 3 :(得分:0)

听起来您在网页上多次使用相同的ID,这是无效的。 ID应该是唯一的。相反,只需完全删除ID属性并按名称搜索它:

console.log($(this).find('select[name="popup"]').val());