在页面中有多个按钮

时间:2010-07-22 13:55:26

标签: html ajax

我在表格中的每一行都有一个提交按钮。每当我点击该按钮时,都应该触发Ajax调用。现在我在表单标签内包装每个按钮。这是一个好方法吗?如果没有,有什么更好的方法来做到这一点。
此外,我将最终用图像替换按钮。

请告知如何处理这种情况。

http://img269.imageshack.us/img269/2077/88405759.png

5 个答案:

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

您应该创建一个表单并将所有提交按钮放入其中。按钮应该有不同的名称。