2012-09-01 47 views
0

正確地傳遞價值,我使用位於這裏的插件:http://www.maratz.com/blog/archives/2006/06/11/fancy-checkboxes-and-radio-buttons/jQuery的自定義複選框和收音機不.VAL()

的風格我單選按鈕和複選框。當我不使用jQuery.get提交表單時,所有的值都傳遞得很好。但當我嘗試提取使用的值:

var sort = $('input[name=sort]:checked').val(); 

它不工作。無論是「新」收音機還是「過期」收音機,它都會說「新」。我試圖弄清楚我到底做錯了什麼。我還嘗試提取當單選按鈕被選中時用類.r_on指定的標籤的值,但我無法做到這一點。

$(document).ready(function(){ 

var sort = $('input[name=sort]:checked').val(); 
var location = $('#location').val(); 


$('.filter_submit').click(function(){ 
    $.get("../bin/open_tasks.php", "sort=" + sort + "&location=" + location , function(data){ 
     alert("Data Loaded: " + data); 
     });//end get request 
    return false; 
    });//end click 

}); 

<fieldset class="radios"> 
      <label class="label_radio" for="new">Newest<input id="new" checked="checked" class="" type="radio" name="sort" value="new"></label><br> 
      <label class="label_radio" for="expire">Expiring First<input id="expire" class="" type="radio" name="sort" value="expire"></label> 
     </fieldset> 

,這是我寫只是爲了測試它的PHP:

<?php 

    echo "loaded kinda"; 

    echo " ".$_GET['sort']." "; 
    echo $_GET['location']; 

?> 

回答

0

你可以試試這個

 if ($('input[name=sort]').is(':checked')) { 

,而不是這個

 var sort = $('input[name=sort]:checked').val(); 

編輯:

這個怎麼

 $('input[name=sort]').change(function() { 
      //this will fire when radio button is clicked 
      //store this information somewhere 
      } 
+0

這是一個單選按鈕。一個或另一個將始終被檢查。 我這樣做的複選框,他們工作得很好。 – user1589198

+0

@ user1589198 - 編輯答案 –

+0

我試過了,它仍然只吐「新」。 編輯:有沒有一種方法來獲得標籤的價值呢?當該單選按鈕被選中時,它被指定一個特殊的類。 – user1589198

0

你過得好頁面加載(.ready)的值。這還爲時過早 - 這將是當時的價值,這一直是一樣的。

您可能希望在提交時獲取值,以便更新單選按鈕可以獲取更新後的值。只需將.val()行移動到.click處理程序。 #location行也是如此。

+0

謝謝!你總是面對自己過着愚蠢的小事,不是嗎? – user1589198

+0

@ user1589198:好吧,至少你可以從體驗這樣的東西中學習:) – pimvdb