2013-04-11 52 views
0

對,所以我在頁面上有多個這樣的表單(編輯,因爲它不清楚,這是PHP中使用我已經添加在PHP和回聲標籤):Jquery獲取選擇表單項的價值

<?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。

任何幫助一如既往的讚賞。

+0

聽起來就像您使用相同的'id'屬性多次。你能證實這一點嗎?你有多個ID爲'popup'的元素? – Travesty3 2013-04-11 13:25:52

+0

ID的ID應該是唯一的,否則它將僅返回第一個結果。如果您有多個相同的表單,這意味着您不止一次使用'popup' ID。你需要使這個獨特的 – musefan 2013-04-11 13:26:15

回答

0

更換

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

試試這個:

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

輝煌!非常感謝! – Compy 2013-04-11 13:29:08

+0

HTML仍然無效。不應該重複相同的ID。 http://www.w3.org/TR/html401/struct/global.html#adef-id – Travesty3 2013-04-11 13:29:46

0

嘗試與

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

所有的形式都在PHP中回顯。我只是排除了PHP和回聲標籤。表單項目確實具有值。 – Compy 2013-04-11 13:25:04

+0

看到我的編輯...我得到了錯誤 – Gautam3164 2013-04-11 13:26:48

0

id應在文件中是唯一的。

更好的訪問將是

$('#popup',this) 

或不重複id(假設只有一個選擇)

$('select',this) 
0

這聽起來像您使用的是同一個ID多次你的頁面,這是無效。 ID應該是唯一的。相反,只需完全清除ID屬性並按名稱搜索:

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