我有一个脚本,用于显示带有文本输入和按钮的表单。 文本输入是必需的,但是脚本只验证输入是否为空/不为空。
我需要进一步介绍它,以便它仅验证字母数字。
我没有访问处理表单提交/验证的文件的权限,因为有1000多个文件。
如果输入字段不是字母数字,我尝试使用此脚本尝试停止表单提交。但这不管用,无论输入如何,表格仍会提交。我已经对validate_text_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>
如何停止提交此表单?
答案 0 :(得分:1)
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;
}
});
});
答案 1 :(得分:0)
在您的URL中,如果您调用validate_text_field(),则会收到错误消息:
noEvent
因此,请首先尝试解决此问题。
两个技巧: 您可以使用$代替'jQuery'。 另外,这个片段:
if
可以简化为
ReferenceError: validate_text_field is not defined