停止表单提交

问题描述 投票:-2回答:2

我有一个脚本,显示带有文本输入和按钮的表单。文本输入是必需的,但脚本仅验证输入是否为空/非空。

我需要进一步采取它,因此它只验证字母数字。

我无法访问处理表单提交/验证的文件,因为有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>

如何阻止提交此表单?

javascript jquery jquery-ui jquery-plugins
2个回答
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;
      }
   });
});

0
投票

在您的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();
© www.soinside.com 2019 - 2024. All rights reserved.