javascript - 停止表单提交
问题描述
我有一个脚本,它显示一个带有文本输入和一个按钮的表单。文本输入是必需的,但脚本仅验证输入是否为空/非空。
我需要更进一步,所以它只验证字母数字。
我无权访问处理表单提交/验证的文件,因为有 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>
如何阻止提交此表单?
解决方案
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;
}
});
});
推荐阅读
- module - 创建一个模块,在 Drupal 8 中使用包含字段图像的表单实现新的 fieldType
- sql - 我正在尝试在 SQL 中构建一个视图,该视图识别和分组具有连续日期范围的记录,并返回最早和最晚日期
- jquery - 如何使用 jquery 查询 url 参数?
- javascript - 如何使用图像制作响应式 3 行
- amazon-web-services - 如何在 cloudwatch 日志中使用指标过滤器
- r - 在 R 中使用 textmineR 评估 LDA 预测 - 计算困惑度?
- python - 如何创建在不同句子中提取的标记列表的列表?
- angular - 无法将数据绑定到输入字段
- performance - 在 WCF 终结点中使用服务器名称与 IP 地址
- vue.js - 使用 i18n 设置语言,根据 Vuejs 中选择的语言更改国家/地区标志