0
我想在我的js validate()方法在提交searchId按鈕時返回true時調用我的ajax代碼。但是ajax代碼沒有執行。如果我在那裏發出警報,它工作正常。 我在哪裏做錯了?請幫忙!!jquery ajax在javascript驗證函數後調用
這裏是我的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>
UPDATE
我已經更新了我的代碼,我可以提交我的形式,但驗證不工作。我使用beforeSubmit:驗證,但我沒有看到我的驗證消息。請幫忙。
'味精>「 「'你覺得在那裏發生了什麼? –
在你的validate()函數中,msg被設置在哪裏?它的值應該是什麼? – mts7
@RUJordan,我編輯了我的HTML並驗證了()。 – user2436956