我有输入文本字段,用户可以在其中提供一些细节和文本字段的更改,调用ajax函数来保存数据。当用户在文本字段中写入内容并单击“提交”按钮时,它会调用ajax函数,但不会同时提交表单。它在第二次点击后提交。 我想如果用户提供了一些输入并点击表单提交,ajax应首先被触发,然后该表单应该被提交而不需要再点击一次。下面是示例代码:
<form:form name ="samplename" action="submitAction">
<form:textarea id="testID" onchange="ajaxmehtod()"></form:textarea>
<input type="button" value="submit">
</form:form>
答案 0 :(得分:0)
您可以创建一个带有“onclick”方法的常规按钮(例如submitForm()),而不是输入类型按钮提交。同时删除textarea上的“onchange”方法。
然后当点击按钮时,如果textarea包含任何数据,请检查javascript,然后执行ajaxmethod(),当ajax准备就绪时,使用$('#samplename')触发表单提交.remit();
<form id="sampleName" name ="sampleName" action="">
<textarea id="testID" name="textAreaName"></textarea>
</form>
<button onclick="submitForm()"></button>
在javascript中:
function submitForm(){
//Check textarea contains data
....
// Execute ajax method
ajaxMethod();
// If ajax method is done, submit form
$('#sampleName').submit();
}
那样的东西?
您还可以阻止默认提交操作,更多信息:https://api.jquery.com/submit/
答案 1 :(得分:0)
尝试输入类型提交而不是按钮
<form id="sampleName" name ="sampleName" action="" onsubmit="ajaxmehtod()">
<textarea id="testID" name="textAreaName"></textarea>
<input type="submit" value="submit">
</form>
这将提交你的表格onsubmit,你需要它texbrea文本区域你可以添加
<textarea id="testID" name="textAreaName" onblur="somefunction()"></textarea>