1

struts2-jquery-plugin-3.2.1を使用しています。私はそれの送信ボタンを使用しています、私はonclickイベントでjavascript検証を呼び出していますが、検証が行われていなくても私のフォームは送信しています。コードは次のとおりです。

<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;
    }
}
4

2 に答える 2

1

私はこのリンクで解決策を得ました:

このコードをヘッドセクションに配置します-

  <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>

そして、struts2jquery送信ボタンのイベントを作成しました-

            <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>`
于 2012-11-09T07:03:45.830 に答える
0

onsubmitフォームはEnterキーを押して送信することもできるため、フォームのイベントに検証を追加する必要があります。

現在の検証は、ユーザーがボタンをクリックした場合にのみ実行されます。

于 2012-11-08T10:23:32.323 に答える