2014-03-31 101 views
1

如何在不檢查任何內容的情況下提交此內容,但在檢查一項內容時提交內容?它目前提交任一方式。我在這裏錯過了什麼?它會拋出我想要的錯誤時,什麼都沒有檢查「請檢查上面的選項之一」,但然後進入着陸頁。感謝您的任何幫助!保持單選按鈕形式提交時沒有檢查jquery

$(document).ready(function() { 
    $("#submitbutton").click(function() { 
     var none_answered = true; 
     $("input:radio").each(function() { 
      var name = $(this).attr("name"); 
      if ($("input:radio[name]:checked").length == 0) { 
       none_answered = false; 
      } 
     }); 
     if (none_answered == false) { 
      $('#texthere').html("Please check one of the options above"); 
     } 
    }) 
}); 

<style type="text/css"> 


#texthere 
{ 
    color:red; 
} 

</style> 

<body> 
    <form> 
     <input type="radio" name="refer" value="Strategic Communication" >Strategic Communication</br> 
     <input type="radio" name="refer" value="Journalism" >Journalism</br> 
     <input type="radio" name="refer" value="Communication Studies" >Communication Studies</br> 
     <div id="texthere"></div> 

     <input id="submitbutton" type="submit" value="submit" formaction="http://www.utah.edu/"> 
    </form>  
</body> 

回答

1

當您想防止默認行爲使用.preventDefault()。例如,在您的情況下,表單提交事件,如果您想要在表單發佈之前驗證輸入,並在發生錯誤時停止提交表單,請使用event.preventDefault()。

試試這個:

$(document).ready(function() { 
    $("#submitbutton").click(function (e) { 
     var none_answered = true; 
     $("input:radio").each(function() { 
      var name = $(this).attr("name"); 
      if ($("input:radio[name]:checked").length == 0) { 
       e.preventDefault(); 
       none_answered = false; 
      } 
     }); 
     if (none_answered == false) { 
      $('#texthere').html("Please check one of the options above"); 
     } 
    }) 
}); 

DEMO