尝试阻止提交,直到使用jquery选择一个单选按钮

时间:2014-03-10 01:16:27

标签: jquery

必须是语法错误,因为我甚至无法获得第一个警报

我的提交按钮

input type="submit" name="payOnline" id="payOnline" value="Pay Online" style="color: red; font-    weight: bold; width:100px; height:40px;"/> 

jQuery的:

<script>
$("#payOnline").click(function() {

alert("submit button clicked on");
if ($("input:radio[name='epackage']:checked").val() <0 ) {
   alert('Nothing is checked!');
    return false;
   event.preventDefault(); 
}

else {
  alert('One of the radio buttons is checked!');
}
});
</script>

3 个答案:

答案 0 :(得分:2)

您想将.val更改为.length。这将返回值0或1.然后将if更改为'&lt; = 0'...

<form>
    <input type="radio" name="epackage" value="1">option 1<br>
    <input type="radio" name="epackage" value="2">option 2
    <input type="submit" name="payOnline" id="payOnline" value="Pay Online" style="color: red; font-weight: bold; width:100px; height:40px;"/> 
    </form>

$("#payOnline").submit(function() {
alert("submit button clicked on");
if ($("input:radio[name='epackage']:checked").length <=0 ) {
   alert('Nothing is checked!');
   return false; 
} else {
  alert('One of the radio buttons is checked!');
}

});

答案 1 :(得分:1)

这里没有语法错误。

一些变化:

1)将event传递给您的点击功能

2)将e.preventDefault()移出if条件。

3)将您的代码包装在DOM就绪处理程序中:

$(function() {
    $("#payOnline").click(function(event) {
        event.preventDefault();
        alert("submit button clicked on");
        if ($("input:radio[name='epackage']:checked").val() <0 ) {
            alert('Nothing is checked!');
            return false;
         }

         else {
             alert('One of the radio buttons is checked!');
         }
    });
});

答案 2 :(得分:0)

1。)确保你的一个脚本标签中有jQuery(这可能是显而易见的,但人们永远都不知道),例如。

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

2.)检查你是否有“&lt;”在您的输入标记前面,您的代码不提供它:

<input type="submit" name="payOnline" id="payOnline" value="Pay Online" style="color: red; font-    weight: bold; width:100px; height:40px;"/>**

有了这两个问题,你的代码实际上对我来说运行得很好!警报出现了。

相关问题