我使用以下代码JSFiddle:
$("form").submit(function() {
$(':submit', this).attr('disabled', true);
$(this).append($('<input/>').attr({
type: 'hidden',
name: $(':submit', this).attr('type'),
value: $(':submit', this).attr('value')
}));
});
<input type="submit" value="Approve" /> <input type="submit" value="Update" />
这会成功禁用提交时的按钮,但我尝试发送适当的值。单击哪个按钮并不重要,它始终返回第一个按钮的值。我该如何解决这个问题?
我想要发生的是当您点击&#34;批准&#34;它发送&#34;批准&#34;,当您点击&#34;更新&#34;它发送&#34;更新&#34;。
答案 0 :(得分:3)
尝试绑定submit
按钮,而不是form
,如下所示:
$(':submit').on('click', function(e) {
e.preventDefault();
$(':submit', this).attr('disabled', true);
$("form").append($('<input/>').attr({
type: 'hidden',
name: $(':submit', this).attr('type'),
value: $(':submit', this).attr('value')
}));
alert($(this).attr('value'));
});
检查代码段:
$(':submit').on('click', function(e) {
e.preventDefault();
$(':submit', this).attr('disabled', true);
$("form").append($('<input/>').attr({
type: 'hidden',
name: $(':submit', this).attr('type'),
value: $(':submit', this).attr('value')
}));
alert($(this).attr('value'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST">
<input type="submit" value="Approve" /> <input type="submit" value="Update" />
</form>
答案 1 :(得分:2)
以下代码适用于所有情况。
JS:
$("input[type=submit]").on("click", function() {
$(this).attr("data-clicked", true);
});
$("form").submit(function(e) {
e.preventDefault();
$(':submit', this).attr('disabled', true);
$(this).append($('<input/>').attr({
type: 'hidden',
name: $('[data-clicked=true]').attr('type'),
value: $('[data-clicked=true]').attr('value')
}));
alert($('[data-clicked=true]').attr('value'));
$('[data-clicked=true]').removeAttr("data-clicked")
});
答案 2 :(得分:1)
让课程提交按钮。
HTML
<form method="POST">
<input class="submit-class" type="submit" value="Approve" />
<input class="submit-class" type="submit" value="Update" />
</form>
JS
$('.submit-class').on('click',function(){
click_val = $(this).val();
});
$("form").submit(function(e) {
e.preventDefault();
$(':submit', this).attr('disabled', true);
$(this).append($('<input/>').attr({
type: 'hidden',
name: $(':submit', this).attr('type'),
value: $(':submit', this).attr('value')
}));
alert(click_val);
});