Javascript 递交表格
我有一个脚本,它显示一个带有文本输入和按钮的表单。 文本输入是必需的,但脚本仅验证输入是否为空/不为空 我需要更进一步,这样它只验证字母数字 我无法访问处理表单提交/验证的文件,因为有1000个文件 我尝试了这个脚本,试图在输入字段不是字母数字的情况下停止表单提交。但它不起作用,不管输入了什么,表单仍然提交。我彻底测试了Javascript 递交表格,javascript,jquery,jquery-ui,jquery-plugins,Javascript,Jquery,Jquery Ui,Jquery Plugins,我有一个脚本,它显示一个带有文本输入和按钮的表单。 文本输入是必需的,但脚本仅验证输入是否为空/不为空 我需要更进一步,这样它只验证字母数字 我无法访问处理表单提交/验证的文件,因为有1000个文件 我尝试了这个脚本,试图在输入字段不是字母数字的情况下停止表单提交。但它不起作用,不管输入了什么,表单仍然提交。我彻底测试了validate\u text\u field(),效果良好 <script> jQuery(document).ready(function() {
validate\u text\u field()
,效果良好
<script>
jQuery(document).ready(function() {
function validate_text_field( input_txt_val ){
var letters = /^[0-9a-zA-Z]+$/;
input_txt_val = $.trim( input_txt_val );
if( input_txt_val.match(letters) ){
return true;
}else{
return false;
}
}
jQuery(".asp_product_buy_btn_container .pricing-button").click(function(e){
var input_txt_val = $( this ).closest( '.asp_all_buttons_container' ).siblings( 'form.asp-stripe-form' ).find( ".asp_product_custom_field_input" ).val();
var is_valid = validate_text_field( input_txt_val );
if( is_valid ){
alert('is valid alphanumeric');
return true;
}else{
alert('is not valid alphanumeric');
e.preventDefault()
return false;
}
});
});
</script>
jQuery(文档).ready(函数(){
函数验证文本字段(输入文本值){
变量字母=/^[0-9a-zA-Z]+$/;
input_txt_val=$.trim(input_txt_val);
如果(输入值匹配(字母)){
返回true;
}否则{
返回false;
}
}
jQuery(“.asp\u product\u buy\u btn\u container.pricing button”)。单击(函数(e){
var input_txt_val=$(this).最近('.asp_all_buttons_container')。同级('form.asp stripe form')。查找(“.asp_product_custom_field_input”).val();
var为有效=验证文本字段(输入文本值);
如果(是否有效){
警报('是有效的字母数字');
返回true;
}否则{
警报('不是有效的字母数字');
e、 预防默认值()
返回false;
}
});
});
如何阻止此表单提交?preventDefault()`当它无效时。事件处理程序的返回值可能无法正确处理
jQuery(document).ready(function() {
jQuery("#stripe_button_0").click(function(e){
var is_valid = validate_text_field();
if( is_valid ){
return true;
}else{
e.preventDefault()
return false;
}
});
});
在您的URL中,如果调用validate_text_field(),则会出现错误:
ReferenceError: validate_text_field is not defined
因此,首先尝试解决这个问题
两个小贴士:
您可以使用$而不是“jQuery”。
此外,该片段:
var is_valid = validate_text_field();
if( is_valid ){
return true;
}else{
return false;
}
可以简化为
return validate_text_field();
我们需要帮助您调试的代码部分是您没有显示的部分<代码>验证文本字段()。也就是说,如果你搜索的话,关于将输入限制为字母数字值的问题已经有数千个了。当你的代码与上面网页中的表单结合使用时,你的代码可以很好地工作
return false
实际上与preventDefault()
相同(尽管它也会停止事件传播)。如果这不起作用,那么preventDefault()
也不会起作用。不幸的是,preventDefault也不起作用。如果我输入一个带空格的字符串(不是字母数字),表单将被提交并打开弹出窗口。还有其他想法吗?你能再检查一下吗?我把它放在我的开发服务器上,我上传了这个函数。有什么想法吗?它现在好像起作用了,不是吗?我看到了您添加的警报,它似乎验证得很好