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>

并写了struts 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>`
于 2012-11-09T07:03:45.830 回答
0

你真的应该为表单的事件添加验证,onsubmit因为表单也可以通过按回车键来提交。

只有当用户单击按钮时,您当前的验证才会触发。

于 2012-11-08T10:23:32.323 回答