所以,这段代码正在运行:
<script>
$(document).ready(function(){
var btn = $('#submit_send_order');
btn.attr({disabled: 'disabled'});
var chk = $('.end-box');
chk.click(function(){
if ($(this).attr('checked'))
btn.removeAttr('disabled');
else
btn.attr({disabled:'disabled'});
});
});
</script>
但我无法获得点击,onclick或事件处理程序的任何工作版本,以便在else条件下生成弹出消息。除非用户选中复选框,否则他们无法在我的网站上发送订单。现在他们点击按钮,没有任何反应,直到他们检查框。但我也想要一个警示,例如:
$(document).ready(function(){
$('#submit_send_order').click(function(){
alert("You cannot proceed until you check the end box");
});
});
答案 0 :(得分:1)
正如Verhaeren所说,如果按钮被禁用,则无法触发click事件。我只是在点击事件中添加了if / else检查,而不是禁用按钮。
因此...
$(document).on('click', '#submit_send_order', function(event) {
event.preventDefault();
if ($('.end-box').prop('checked')) {
//Handle form submission
} else {
alert('You cannot proceed until you check the end box');
}
});
答案 1 :(得分:0)
禁用元素时,onclick事件不会触发。另外,请注意哪种方法可以查看是否选中了复选框:
$(document).ready(function(){
var btn = $('#submit_send_order');
btn.attr({disabled: 'disabled'});
var chk = $('.end-box');
chk.on('click', function(){
if ($(this).is(':checked'))
btn.removeAttr('disabled');
else
btn.attr({disabled:'disabled'});
});
btn.on('click', function(){
alert("You cannot proceed until you check the end box");
});
});
我建立了一个&#34;解决方案&#34;如果你真的想这样做的话。你可以在这个小提琴上查看它:
http://jsfiddle.net/2f1wsb8c/3/
在按钮上方放置一个按钮大小相同的元素,以便在按钮被禁用时捕捉到点击。