我在表格中的每一行都有一个提交按钮。每当我点击该按钮时,都应该触发Ajax调用。现在我在表单标签内包装每个按钮。这是一个好方法吗?如果没有,有什么更好的方法来做到这一点。
此外,我将最终用图像替换按钮。
请告知如何处理这种情况。
答案 0 :(得分:3)
现在我正在将每个按钮包裹在表单标记内。这是一个好方法吗?
是的,这很好。
唯一的问题是HTML有点粗糙,但是这个问题在很大程度上被gzip压缩消除了(因为会有很多重复的令牌,它们是高度可压缩的)。
对它有利,该方法实现起来非常简单,很难出错,并且不依赖于打开JavaScript的用户。
然后,您可以轻松地使用onsubmit事件增强表单,以使用JavaScript使用Ajax发送数据并取消表单的正常提交。
此外,我将最终用图像替换按钮。
我通常会尽量避免这种情况。一个按钮是一个明确的指示器,它是可点击的东西,可以做某事。如果您真的想要,可以用提交输入替换图像输入。
答案 1 :(得分:2)
您可以不显眼地将函数绑定到一组元素,如下所示:
<script>
var anchors = document.getElementsByTagName('a');
for(var i = 0; i < anchors.length; i++) {
anchors[i].onclick = function() {
alert(this.id);
// do ajax call
return false;
}
}
</script>
<a id="test" href="#">Test</a>
<a id="tes2t" href="#">Test2</a>
答案 2 :(得分:1)
你应该使用
<input type="button" onclick="AjaxFunction()">
其中AjaxFunction()是一个发出ajax请求的函数。表单标签和提交按钮不需要Ajax请求。
顺便说一句,您可以使用图像而不是按钮。像这样的东西
<img src="url" alt="" onclick="AjaxFunction()" />
答案 3 :(得分:0)
为什么不创建一个大表单然后用他们的(或其他)id区分按钮?
答案 4 :(得分:0)
您应该创建一个表单并将所有提交按钮放入其中。按钮应该有不同的名称。