2011-02-17 96 views
0

我想設置一個隱藏的表單字段與選定的單選按鈕的值。我有以下代碼:註冊jquery單選按鈕單擊事件不起作用

$(function() { 
     // set hidden form field with selected timeslot 
     $('input[name=["timeslot"]').live("click", (function() { 
      var valu = $(this).val(); 
      alert(valu); 
      $("#selectedSlot").val(valu); 
     })); 
    }); 

的所有單選按鈕的名稱爲「時隙」,我想運行此功能,只要點擊一個。但是,當單擊其中一個單選按鈕時,警告框顯示空白。

更新:哎呀!沒有看到雙方括號。但我固定它:

 $('input[name="timeslot"]').live("click", (function() { 
      var valu = $(this).val(); 
      alert(valu); 
      $("#selectedSlot").val(valu); 
     })); 

我仍然有同樣的問題。事實上,出於某種原因,警報箱甚至不再出現。

更新2:實際上,在我的真實代碼中,除了這個之外,我還有其他事件在我的啓動塊中註冊 - 如果我除掉單選按鈕之外的所有這些事件,它都可以工作!

舉例來說,如果我有這樣的:

$(function() { 
     // set hidden form field with selected interviewee 
     $('#interviewees').live("change", (function() { 
      var selected = $("#interviewees").val(); 
      $("#selectedInterviewee").val(selected); 
     })); 
     // set hidden form field with selected timeslot 
     $('input[name="timeslot"]').live("click", (function() { 
      var valu = $(this).val(); 
      alert(valu); 
      $("#selectedSlot").val(valu); 
     })); 
    }); 

那麼單選按鈕單擊事件不火,雖然第一個(下拉列表)一樣。但是如果我有一個單獨的單選按鈕,它確實如此。有任何想法嗎????

輸入標籤是這樣的:

<input id="slot_7:30-AM" name="timeslot" type="radio" value="slot_7:30-AM" /> 

我使用的IE 8大部分,但我想這對Firefox和同樣的事情發生。我究竟做錯了什麼?

+0

你的html看起來像什麼? – 2011-02-17 23:11:48

+0

@David - 你需要看到什麼其他的HTML(輸入標籤除外)? – Cynthia 2011-02-17 23:34:37

回答

0

確定我得到了它通過顛倒事件註冊的順序工作:

$(function() { 
     // set hidden form field with selected timeslot 
     $('input[name="timeslot"]').live("click", (function() { 
      var valu = $(this).val(); 
      alert(valu); 
      $("#selectedSlot").val(valu); 
     })); 
     // set hidden form field with selected interviewee 
     $('#interviewees').live("change", (function() { 
      var selected = $("#interviewees").val(); 
      $("#selectedInterviewee").val(selected); 
     })); 
    }); 

唉。我回到了我的觀點,即JavaScript是一團糟。但無論出於何種原因,它現在都可以工作。(他們兩個現在都工作......非常奇特)。

0

沒有看到你的HTML,我不能完全肯定,但我想這個問題是您使用的選擇:

$('input[name=["timeslot"]') 

至少有兩個問題可能會導致問題:

  1. 未關閉方括號和
  2. 屬性選擇器內部的使用方括號。嘗試使用:$('input[name="timeslot"]')


響應意見,回答編輯,以下。

以下似乎工作:

$('input[name="timeslot"]').live('click', function() { 
    var valu = $(this).val(); 
    alert(valu); 
    $("#selectedSlot").val(valu); 
}); 

JS Fiddle demo

我,當然,使用text輸入,而不是hidden,但由於選擇工作的id應該不管input類型的工作。

+0

我修復了方括號的問題,但它仍然不起作用(請參閱我的更新)。你沒有看到HTML的含義是什麼?我在我的帖子中顯示輸入標籤。你還想看什麼其他的HTML? – Cynthia 2011-02-17 23:34:04