2017-08-24 58 views
-3

我正在練習JavaScript,並且當點擊表單中的任何單選按鈕時,我正在嘗試使按鈕可點擊。但是我的$('form:input')。change()事件永遠不會被觸發。 這裏是HTML

<!DOCTYPE html> 
<html> 
<head> 
<title>blah</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
</script> 
<script> 
$('form :input').change(function() { 
    alert("changed"); 
    if($("input[type=radio]:checked").length === 0){ 
     $('#voteButton').prop('disabled', true); 
    }else{ 
     $('#voteButton').prop('disabled', false); 
    } 
}) 
$(document).ready(function() { 
     if($("input[type=radio]:checked").length === 0){ 
      $('#voteButton').prop('disabled', true); 
     } 
    }); 
</script> 
</head> 
<body> 
<form>  
    <input type="radio" name="choice" id="choice1" value="1"> 
    <label for="choice1">Just hacking again</label><br> 
    <input type="radio" name="choice" id="choice2" value="2"> 
    <label for="choice2">Nothing</label><br> 
    <input type="submit" value="vote" name="voteButton" id="voteButton"> 
</form> 
</body> 
</html> 

的事情是,我做了一個js小提琴(https://jsfiddle.net/3wLmxmu6/4/)和它的工作的小提琴。但是在我的電腦上,事實並非如此。在過去的2個小時裏,我一直在爲這件事而頭痛,並且找不到任何理由。 我的瀏覽器控制檯在chrome和firefox中都沒有顯示任何錯誤/警告。 任何人都可以告訴我這裏發生了什麼,如何解決它?非常感謝你。

+2

'$('形式:輸入')...'文檔就緒處理程序內部 – Satpal

+1

傳入答案,而不是投票結束在3 ... 2 .. 1 ... –

+0

@RoryMcCrossan錯字,你還在計數? – Satpal

回答

1

你正在得到downvotes的原因是因爲你的問題缺乏研究。

如何jQuery的變化的作品,可以發現here

至於你的問題:

<form>  
     <input type="radio" name="choice" id="choice1" value="1"> 
     <label for="choice1">Radio 1</label><br> 
     <input type="radio" name="choice" id="choice2" value="2"> 
     <label for="choice2">Radio 2</label><br> 
     <input type="submit" value="vote" name="voteButton" id="voteButton" disabled = 'true'> 
    </form> 

腳本:

$(document).ready(function() { 
     $('form :input').change(function() { 
      alert("changed"); 
      if($("input[type=radio]:checked").length === 0){ 
       $('#voteButton').prop('disabled', true); 
      }else{ 
       $('#voteButton').prop('disabled', false); 
      } 
     }) 
    }); 

更新您的提琴here