2016-07-24 84 views
0

如果select下拉菜单的值为NULL,则应该停止加载页面。 jQuery的工作提醒用户的问题,但页面仍然延续到下一页。任何援助都会很棒。由于页仍然使用event.preventDefault()重新加载;

卢克

<fieldset class="form-group"> 
    <label for="question-1">1. What age group are you?</label> <br> 
    <select class="drop-down" id = "ageChoice"> 
    <option value="">Please Select</option> 
    <option value="16minus">16 or below</option> 
    <option value="16-18">16 to 18</option> 
    <option value="19-25">19 to 25</option> 
    <option value="26-34">26 to 34</option> 
    <option value="35-42">35 to 42</option> 
    <option value="43-50">43 to 50</option> 
    <option value="51-60">51 to 60</option> 
    <option value="61plus">61+</option> 
    </select> 
</fieldset> 

    <input class="btn btn-primary" type="button" id= "next" value="Next" onClick="location.href='first-test.html' "> 

$("#next").click(function() { 

    var age = $('#ageChoice'); 

    if (age.val() === '') { 
     event.preventDefault(); 
     alert("Please select your age group, thank you."); 

    } 
    else 
     return; 
}); 
+0

检查你的控制台,应该有一个关于'event'未定义的错误。它作为回调函数的参数。 –

+0

嗨,感谢您的回复,抱歉,我是jQuery新手,你的意思如下: https://jsfiddle.net/uvyqtsxn/ 如果是这样,似乎没有工作。再次感谢您的回应。 – luke121

回答

1

好了,因为你有两个点击处理,被处理两次事件。您试图阻止的'Default'不是onClick =“location.href ='first-test.html'。这是在jQuery点击函数之后处理的,所以我们将onClick从html中取出并添加功能jQuery的单击事件(我们可以做到这一点无论哪种方式,但监守你已经有大部分成立已有的代码,我们会做这样)

这里是返工代码:

<fieldset class="form-group"> 
    <label for="question-1">1. What age group are you?</label> <br> 
    <select class="drop-down" id = "ageChoice"> 
    <option value="">Please Select</option> 
    <option value="16minus">16 or below</option> 
    <option value="16-18">16 to 18</option> 
    <option value="19-25">19 to 25</option> 
    <option value="26-34">26 to 34</option> 
    <option value="35-42">35 to 42</option> 
    <option value="43-50">43 to 50</option> 
    <option value="51-60">51 to 60</option> 
    <option value="61plus">61+</option> 
    </select> 
</fieldset> 

    <input class="btn btn-primary" type="button" id= "next" value="Next"> 

和jquery:

$("#next").on('click', function (event) { 

    var age = $('#ageChoice'); 

    if (age.val() === '') { 
     alert("Please select your age group, thank you."); 
    } else { 
     location.href='first-test.html' 
    } 
}); 
+0

非常感谢,它的工作原理!一直呆了好几个小时。我认为这是一种更有效的编写代码的方式,将href从html中移除并放入jQuery中? – luke121

+0

嗯,这一切都取决于你想要做什么,'onclick = ...'和$()。on('click',func)基本上是做同样的事情。避免让两个独立的观察者观看相同的事件。 – TetonDan

相关问题