Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery return false在我的提交点击中不起作用_Jquery - Fatal编程技术网

Jquery return false在我的提交点击中不起作用

Jquery return false在我的提交点击中不起作用,jquery,Jquery,这是我用于Html.BeginForm的代码 $('#PbtnSubmit').click(function() { $('#PricingEditExceptions input[name=PMchk]').each(function() { if ($("#PricingEditExceptions input:checkbox:checked").length > 0) { var ch

这是我用于Html.BeginForm的代码

 $('#PbtnSubmit').click(function() {
            $('#PricingEditExceptions input[name=PMchk]').each(function() {
                if ($("#PricingEditExceptions input:checkbox:checked").length > 0) {
                    var checked = $('#PricingEditExceptions input[type=checkbox]:checked');
                    var PMstrIDs = checked.map(function() {
                        return $(this).val();
                    }).get().join(',');
                    $('#1_exceptiontypes').attr('value', exceptiontypes)
                    $('#1_PMstrIDs').attr('value', PMstrIDs);
                } else {
                    alert("Please select atleast one exception");
                    return false;
                }
            });
        });
在其他blcok中,我的返回错误在警报后不起作用,并且它也将转到我的控制器

谢谢,是这样吗

我试过这样做

 $('#PbtnSubmit').click(function() {
                $('#PricingEditExceptions input[name=PMchk]').each(function() {
                    if ($("#PricingEditExceptions input:checkbox:checked").length > 0) {
                        var checked = $('#PricingEditExceptions input[type=checkbox]:checked');
                        var PMstrIDs = checked.map(function() {
                            return $(this).val();
                        }).get().join(',');
                        $('#1_exceptiontypes').attr('value', exceptiontypes)
                        $('#1_PMstrIDs').attr('value', PMstrIDs);
                    } else {
                        alert("Please select atleast one exception");

                    }
                });
return false;
            });
如果我在提交时这样做,它什么也不做

谢谢

检查以下内容:

您可能应该这样做:

$('#PbtnSubmit').click(function(event) {
 /// code 

 event.preventDefault();
});

是否要阻止在特殊情况下提交表单

如果是这样,您应该首先避免使用
单击
,而是使用支持键盘操作的
提交
事件。将事件更改为提交后,可以使用
event.preventDefault()
阻止表单提交

因此,您的代码可能如下所示(注意:未测试):

$('').bind('submit',函数(事件){
$('#pricingedExceptions输入[name=PMchk]')。每个(函数(){
if($(“#PricingedExceptions输入:复选框:选中”).length>0){
var checked=$(“#pricingedExceptions输入[类型=复选框]:checked”);
var PMstrIDs=checked.map(函数(){
返回$(this.val();
}).get().join(',');
$('#1#exceptiontypes').attr('value',exceptiontypes)
$('1#PMstrIDs').attr('value',PMstrIDs');
}否则{
警报(“请至少选择一个异常”);
event.preventDefault();//在此处停止提交!
}
});
});

此处的更多信息:(它位于页面下方相当远的位置,因此请在页面内搜索
.bind(“提交”
)。此处还有更多信息:如果您有错误(未捕获的异常),请执行)在提交处理程序中,您不会最终返回false并停止事件传播。如果您切换到使用其他响应程序建议的方法,但仍有问题,则应在提交处理程序的开头调用event.preventDefault,这样您就知道页面不会在您提交之前提交获得调试错误的机会。

有时必须清除以前的事件绑定,然后绑定事件

使用jQuery,这将类似于

 $("#...").off('click');$("#...").click(function(){..});

+1使用preventDefault而不是
return false
。我还建议将其置于
alert()
之前,因为它会阻止执行,直到用户按下OK。对我来说,我不知道为什么,但return false不起作用!这绝对是一种更好的方法!
。on()
是首选方法,而不是
。bind()
用于jQuery 1.7+
 $("#...").off('click');$("#...").click(function(){..});