javascript验证函数后调用jquery ajax

时间:2014-05-22 17:54:19

标签: javascript jquery ajax

我试图在我的js validate()方法在提交searchId按钮时返回true之后调用我的ajax代码。但是ajax代码没有执行。如果我在那里发出警报就行了。 我在哪里做错了?请帮忙!!

这是我的javascript代码

  <script language="JavaScript">
  function validate()
  {
    var msg = "";
     //all my field validations are here
     msg += "o  Name is not a valid name.\n";

   if (msg > "") {
           alert(msg);
        return false;
      }
    else {
      return true;
      }
  }

 $(document).ready(function(){              
             $("#simple-post").click(function()
            {                
             $("#ajaxform").submit(function(e)
                {

                     // getting the values of both firstname and lastname        
                     var beginDate = $('input[name="txtBeginDate"]').val();        
                     var endDate = $('input[name="txtEndDate"]').val();   
                     var mdnVal = $('input[name="txtMsid"]').val();                      
                     // posting the values        
                     var dataString = 'beginDate=' + beginDate + '&endDate=' + endDate+ '&mdnVal=' + mdnVal;
                     alert(dataString);
                     var formURL = $(this).attr("action");  

                    //alert(formURL);                       
                    $.ajax(
                    {
                        url : formURL,                          
                        dataType:'json',
                        async: false, 
                        data: dataString,
                        beforeSubmit: validate,
                        success:function(data){
                            queryObject = eval('(' + JSON.stringify(data) + ')');
                            queryObjectLen = queryObject.empdetails.length; 
                            drawChart();
                        },
                        error : function(xhr, type) {
                            alert('server error occoured')
                       }        
                    });
                  e.preventDefault(); //STOP default action
                  e.unbind(); //unbind. to stop multiple form submit.
                });                 
                $("#ajaxform").submit(); //Submit the FORM
            });

         });

这是我的HTML代码

<form name="ajaxform" id="ajaxform"  action="getData.jsp" onSubmit="return validate();"    method="POST">
   <Table>

         <input type="submit" name="action" value="Search" id="searchId">
         <input type="text" name="name" id="id"  size="10" maxlength="10">
                   //other input fields    

      </table>
    </form>
    <button class="btn btn-info" id="simple-post">Run Code</button>
    <div id="chart_div" style="width: 900px; height: 500px;"></div>

更新

我已更新了我的代码,我可以提交我的表单,但验证无效。我正在使用beforeSubmit:validate,我仍然没有看到我的验证消息。请帮忙。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。添加了“提交”按钮标记并删除了“运行代码”。在提交按钮上更改提交为onclick。再次删除$(“#simple-post”)。单击(function()形成我的jquery代码。这似乎现在工作正常。

感谢这篇文章

Validate a form with javascript before submitting with ajax?