我只是想在发送表格之前要求用户确认他们的选择。所以我需要他们刚刚选择/点击它们来确认的文本值(我的意思是innerHTML,而不是value =“”属性)。 该表单由许多具有相同名称但不同值的按钮组成(动态生成),因此我需要在选中后“捕获”它。 html看起来像这样:
<form id="myForm" method="post" action="here.php">
<button class="bc" value="v1">foo</button>
<button class="bc" value="v2">bar</button>
</form>
到目前为止我有这段代码,但我无法弄清楚如何获取值,将其添加到确认框中。
$('form#valueSelect').submit(function( event ) {
var sel = this;
var c = confirm("You have selected " + sel + " Click OK to continue?");
return c;
});
我得到[object HTMLFormElement]而不是值。我累了var sel = this.value;
和value()以及val和val()但它不起作用,我不知道为什么。
答案 0 :(得分:0)
尝试使用全局变量,然后在单击按钮时更新它。然后,您将获得最近的按钮点击值。
var btnText = '';
$(document).ready(function(){
$('form#valueSelect').submit(function( event ) {
var c = confirm("You have selected " + btnText + " Click OK to continue?");
return c;
});
$("input[name='YourBtnName']").on("click",function(){
btnText = $(this).val();
});
});
答案 1 :(得分:0)
抱歉,我的问题不太清楚。
我想要用户点击按钮的显示值(innerHTML)(在许多其他按钮中),html看起来像这样:
<form id="myForm" method="post" action="here.php">
<button class="bc" value="v1">foo</button>
<button class="bc" value="v2">bar</button>
</form>
我找到了一种解决方法,使用click而不是submit:
$('button.bc').click(function( event ) {
var myForm = $('#myForm');
event.preventDefault();
var bval = this.value;
var choice = this.innerHTML;
var c = confirm("You have selected " + choice + "\nClick OK to continue?");
if(c == true) {
var input = $("<input>").attr("type", "hidden").attr("name", "token").val(bval);
$('#myForm').append($(input));
$('#myForm').submit();
}
});
并在我的表单中添加<input type="hidden" name="token"></input>
,以便“存储”所点击按钮的值。