Проверка Javascript не работает, когда я использую Struts 2 JQuery кнопку отправки события OnClick

Я использую struts2-jquery-plugin-3.2.1 . Я использую кнопку "Отправить", я вызываю проверку javascript на событие onclick, но моя форма отправляется, даже если проверка не выполнена. Вот код:

<sj:submit
value="Add"
targets="idRightMainDiv"
button="true"
buttonIcon="ui-icon-gear"
formIds="addExerDetailsForm"
onclick="return SetsRepsFormValidate()"   //calling javascript validation 
tabindex="7"/>

function SetsRepsFormValidate() {
    var summary = "";
    summary += isSets();
    summary += isReps();

    if (summary != "") {
    dhtmlx.alert(summary);
    return false;
    }

    else {
    return true;
    }
}

2 ответа

Решение

Я получил решение по этой ссылке:

поместите этот код в главном разделе

  <sj:head jqueryui="true"/>
   <script type="text/javascript">
     $.subscribe('before', function(event,data) {
     var fData = event.originalEvent.formData;
     alert('About to submit: \n\n' + fData[0].value + ' to target '+event.originalEvent.options.target+' with timeout '+event.originalEvent.options.timeout );
    var form = event.originalEvent.form[0];
     if (form.echo.value.length < 2) {
      alert('Please enter a value with min 2 characters');
      // Cancel Submit comes with 1.8.0
      event.originalEvent.options.submit = false;
      }
   });
  $.subscribe('complete', function(event,data) {
     alert('status: ' + event.originalEvent.status + '\n\nresponseText: \n' + event.originalEvent.request.responseText + 
   '\n\nThe output div should have already been updated with the responseText.');
  });
  $.subscribe('errorState', function(event,data) {
    alert('status: ' + event.originalEvent.status + '\n\nrequest status: ' +event.originalEvent.request.status);
  });
 </script>

И написал распорки 2 JQuery отправить кнопку события-

            <div class="type-button">
                     <sj:submit  targets="result" 
                                    value="AJAX Submit" 
                                    timeout="2500" 
                                    indicator="indicator" 
                                    onBeforeTopics="before" 
                                    onCompleteTopics="complete" 
                                    onErrorTopics="errorState"  
                                    effect="highlight" 
                                    effectOptions="{ color : '#222222' }" 
                                    effectDuration="3000"/>
             </div>`

Вы должны действительно добавить проверку к onsubmit Событие формы в виде формы также можно отправить, нажав клавишу ввода.

Ваша текущая проверка будет срабатывать, только если пользователь нажмет на кнопку.

Другие вопросы по тегам