gpt4 book ai didi

即使验证返回 false,JQuery 表单也会被提交

转载 作者:行者123 更新时间:2023-12-01 03:56:57 26 4
gpt4 key购买 nike

我下面提到的代码仍然提交名称字段中特殊字符的表单。验证有效,但如果我重复提交,它会中断并提交名称中带有特殊字符的表单。

这可能是什么原因?

$("#fee").submit(function(){
trimmedValue = $.trim($("#name").val());
$("#name").val(trimmedValue);
typevalue = $("input:radio[@name='type']:radio:checked").val();
if(typevalue=="FLAT" && !isFloat($("#amount").val())) {
alert("Amount should be number with proper decimal formatting");
$("#amount").val("0.0");
return false;
}
var noSpecialChars = /[^a-zA-Z0-9]/g;
if (noSpecialChars.test($("#name").val())) {
alert("Please enter valid fee Name. Do not enter special characters" );
return false;
}

if(typevalue=="PERCENTAGE" && !isFloat($("#percentage").val())) {
alert("percentage should be number with proper decimal formatting");
$("#percentage").val("0.0");
return false;
}
if(typevalue=="FLAT" && $("#amount").val()=="0.0") {
return confirm("Do you really want the amount to be 0.0 ?");
}
if(typevalue=="PERCENTAGE" && $("#percentage").val()=="0.0") {
return confirm("Do you really want the percentage to be 0.0 ?");
}

});

最佳答案

您可以在哪种浏览器中重现此内容?

我在 Firefox 3.5.2 上做到了,但无法在 IE 6.0 上重现它。经过更多探索后,我注意到在这一行中......

if (noSpecialChars.test($("#name").val())) {

...对 .test() 的调用以交替模式返回 true,然后返回 false(仅限 Firefox),表明 存在一些问题>正则表达式。所以我尝试像这样替换 RegExp 的隐式创建:

    //var noSpecialChars = /[^a-zA-Z0-9]/g;        
var noSpecialChars = new RegExp("[^a-zA-Z0-9]");

这解决了我的问题。

关于即使验证返回 false,JQuery 表单也会被提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com