在发送表单之前获取/捕获按钮值,以进行表单确认

时间:2015-08-06 13:51:37

标签: javascript jquery html forms confirmation

我只是想在发送表格之前要求用户确认他们的选择。所以我需要他们刚刚选择/点击它们来确认的文本值(我的意思是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()但它不起作用,我不知道为什么。

2 个答案:

答案 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>,以便“存储”所点击按钮的值。