Прекратить отправку формы - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть скрипт, который отображает форму с вводом текста и кнопкой.Требуется ввод текста, но скрипт проверяет ввод только на пустое / не пустое.

Мне нужно продолжить его, чтобы он проверял только буквенно-цифровые символы.

У меня нет доступа кфайл, который обрабатывает отправку / проверку формы, потому что существует 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>

Как мне остановить отправку этой формы?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

В вашем 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();
0 голосов
/ 15 февраля 2019

protectDefault () `, когда оно недопустимо.Возвращаемое значение обработчика события может быть обработано неправильно.

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;
      }
   });
});
...