提交按钮仅在输入文本上调用onchange后第二次单击时起作用

时间:2016-05-04 09:39:37

标签: javascript jquery ajax spring jsp

我有输入文本字段,用户可以在其中提供一些细节和文本字段的更改,调用ajax函数来保存数据。当用户在文本字段中写入内容并单击“提交”按钮时,它会调用ajax函数,但不会同时提交表单。它在第二次点击后提交。 我想如果用户提供了一些输入并点击表单提交,ajax应首先被触发,然后该表单应该被提交而不需要再点击一次。下面是示例代码:

<form:form name ="samplename" action="submitAction">
<form:textarea id="testID" onchange="ajaxmehtod()"></form:textarea>
<input type="button" value="submit">
</form:form>

2 个答案:

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