4
4

7 回答 7

2

丑陋,但使用隐藏的表单域:

<input type="hidden" id="clickedname" name="" value="" />

<a class="button" name="cancel" href="javascript:" onclick="$('#clickedname').value = this.name; $('#frmCompose').submit();">Cancel</a>
                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^

调整名称/值分配以适应 - 我不记得图像输入是如何提交自己的。

于 2012-08-29T19:47:12.793 回答
2

例如,您需要使用 JS 将值放入隐藏字段以进行提交,然后提交。

我建议编写一个微小的实用函数来替换您的onclick属性值。更好的是,在 DOM 准备好后附加功能,并保持不显眼和本地化。

<a class="button" href="#" onclick="submit('cancel')">Cancel</a>

submit按照您的期望完成,填写隐藏字段并提交表单。如果您真的根本无法更改后端,那么您也可以更改隐藏字段的名称,但是,呃;似乎更改后端以检查“操作”字段或更清洁的东西。

于 2012-08-29T19:48:13.197 回答
1

如果添加 name="cancel" 不起作用,听起来您可能需要对您的 javascript 有点花哨。就像是:

<input type="hidden" name="placeholder" value="true" />
<a class="button" name="cancel" href="javascript:" onclick="$(this).prev().attr('name', 'cancel'); $('#frmCompose').submit();">Cancel</a>
于 2012-08-29T19:48:31.000 回答
1

只有表单元素(<input><button><textarea><select>等)向表单提交值。要让<a>标签这样做,您必须使用 JavaScript 将值添加到表单中。

一种方法是添加隐藏的表单元素,并设置其名称/值。

<a class="button" name="cancel" href="#">Cancel</a>
<input type="hidden" id="buttonClicked" />

然后使用 JavaScript (jQuery):

$(function(){
    $('a.button').click(function(e){
        e.preventDefault();
        $('#buttonClicked').prop({
            name: $(this).prop('name'),
            value: $(this).prop('name')
        });
        $('#frmCompose').submit();
    });
});
于 2012-08-29T19:49:42.543 回答
1

您可以将单个隐藏字段添加到表单

<input type="hidden" id="action" value=""/>

然后在onclick中设置action的值

$("#action").attr("name","---ActionHere---");

所以取消变成:

<a class="button" href="javascript:" onclick='$("#action").attr("name","cancel");$("#frmCompose").submit();'>Cancel</a>

发送变为:

<a class="button" href="javascript:" onclick='$("#action").attr("name","send");$("#frmCompose").submit();'>Send</a>

希望这可以帮助

于 2012-08-29T19:52:18.947 回答
0

我认为最简单的方法就是<input type="hidden" />使用您想要的名称创建一个,如下所示:

<input type="hidden" name="cancel" />
<a class="button" href="javascript:" onclick="$('#frmCompose').submit();">Cancel</a>
于 2012-08-29T19:54:49.173 回答
0

可能你不需要使用<a>

html:

<button class="alike">Test</button>
<a href="#">Test</a>​

CSS:

button.alike,a {
 border: 0px;   
 text-decoration: underline;
 color: #00E;
 width: auto;
 cursor: pointer;
 background-color: inherit;
 font-family: 'Times New Roman';
 font-size: 16px;
}​
于 2012-08-29T20:07:55.813 回答