beforesubmit, кажется, не выполняется вообще - PullRequest
0 голосов
/ 01 сентября 2011

Я пытаюсь заставить работать опцию beforesubmit, чтобы проверить форму перед ее отправкой. Я должен что-то упустить. Это работает нормально, но полностью игнорирует функцию.

 $(document).ready(function() {
            var options = {
                    beforesubmit: function() {
                            var subjectTxtVal = $('input[name=subjectTxt]').fieldValue(); 
                            var messageTxtVal = $('input[name=messageTxt]').fieldValue();

                            if (!subjectTxtVal[0] || !messageTxtVal[0]) { 
                                alert('Please enter a value for subject and message'); 
                                return false; 
                            } 
                    },
                    target:  '#results',
                    success: showResponse
            };
            $('#results').dialog({autoOpen: false, modal: true, buttons: {
                            Ok: function() {
                                    $( this ).dialog( "close" );
                            }
                    }});
            $('#resemail').submit(function() {
                    $(this).ajaxSubmit(options);
                    $('#results').dialog('open');
                    return false;
            });

    });

Основываясь на моем тестировании с firebug, я не вижу, где он вообще вызывает функцию Я посмотрел на документы и примеры, но это несколько сбивает с толку. Есть идеи?

Спасибо.

1 Ответ

1 голос
/ 01 сентября 2011

Почему бы просто не проверить его самостоятельно перед отправкой, а не полагаться на плагин?

$(document).ready(function() {
            var options = {
                    target:  '#results',
                    success: showResponse
            };
            $('#results').dialog({autoOpen: false, modal: true, buttons: {
                            Ok: function() {
                                    $( this ).dialog( "close" );
                            }
                    }});
            $('#resemail').submit(function() {
                    if( validate_fields() )
                    {
                        $(this).ajaxSubmit( options );
                    }
                    else 
                       return false;                                                     
            });

});

function validate_fields() 
{
  var subjectTxtVal = $('input[name=subjectTxt]').fieldValue(); 
  var messageTxtVal = $('input[name=messageTxt]').fieldValue();

  if (!subjectTxtVal[0] || !messageTxtVal[0]) { 
      alert('Please enter a value for subject and message'); 
      return false; 
   }
   return true;  
}
...