从网上浏览,我没有看到很多设置函数等于函数的例子。但是,在我发现的少数几个论坛中,似乎很多人都说这种方法没有被广泛支持。
为了解释我的问题,我有一个表格我想在下面实现:
<table border="0" cellpadding="2" cellspacing="5">
<th colspan="2" align="center">Check Out</th>
<form name="checkOut" method="post" onSubmit="return(validate(this))" action="checkOut()">
<tr><td>Territory Number</td><td><input type="text" name="numberOut" tabindex="1" maxlength="3" size="3" /></td>
</tr><tr><td>First Name of Publisher</td><td><input type="text" onKeyUp="showHint(this.value)" name="fName" tabindex="2" maxlength="15"/></td>
</tr><tr><td>Last Name of Publisher</td><td><input type="text" onKeyUp="showHint_l(this.value)" name="lName" tabindex="3" maxlength="15" /></td>
</tr><tr><td><input type ="checkbox" name="specialC" tabindex="4" value="Yes"/> Special Campaign</td>
</tr><tr><td><input type="button" onClick="clearForm()" value="Reset" /></td><td><input type="submit" value="Check Out" /></td>
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</table>
更具体地说,checkOut()函数将使用ajax将表单值提交给php脚本,该脚本对数据库运行一些插入命令(我想使用ajax来学习这个技术,因为我很新基于Web的语言。因此,我想推迟使用jQuery一段时间)。截至目前,我没有这个功能的例子。
当然,这引出了一个问题,我可以简单地将该函数放入事件处理程序中:onSubmit =“checkOut()”?与此同时,我会离开action =“”?我假设整个函数将执行php脚本并完全按照我想要的方式执行,而无需单独的操作脚本。
任何反馈都将不胜感激。
答案 0 :(得分:2)
您可以将其设为action="javascript:checkOut();"
,但将它放在onSubmit
处理程序中几乎肯定会更好。
答案 1 :(得分:2)
使用<input type="button" />
(或锚点,或button
或其他)代替<input type="submit" />
。在按钮的单击事件上,执行:
if(validate(document.getElementById("formId"))){
// post the form w/ AJAX
checkOut();
}
请记住,任何基于脚本的解决方案都应该具有非脚本选项。在这种情况下,它可以像在<input type="submit" />
标记内放置noscript
一样简单。
顺便提一下,您的标记无效。 form
无法显示为table
的直接子项。
答案 2 :(得分:0)
使用此代码是最好的方法
<input type="submit" id="submit_button">
和像这样的javascript代码
var submit = getElementById('submit_button');
submit.preventDefault();
submit.addEventListener('click', checkOut);
在第一行我们指定按钮,然后我们阻止执行默认操作,接下来我们为按钮点击时添加一个监听器
答案 3 :(得分:0)
我通常使用:
<input type="button" value="Submit" onclick="myFunction();">
然后我的函数将使用底部的本机提交函数,如果一切都检查出来。:
if (isSuccess)
theForm.submit();
else
return false;