7

我有一种情况,我需要跟踪哪个提交按钮单击,以便根据它设置变量。下面是测试代码,

<script>
function submitForm(form) {
    alert(document.getElementById('sb').value);
    if (document.getElementById('sb').value=="One") {
        //Do something
    }
    return true;
}
</script>


<form action="" method="get" onsubmit="return submitForm(this);">
    <input type="submit" name="sb" value="One">
    <input type="submit" name="sb" value="Two">
    <input type="submit" name="sb" value="Three">
</form>

即使我单击按钮二或三,警报也始终显示一。但是 url 会随着可点击参数的变化而变化。如何提醒可点击提交按钮中的值?

注意:我想要一个没有 JQuery 的解决方案

编辑:我更改了 onsubmit 调用 submitForm(this); 的代码位 问题甚至是使用 document.forms[0].sb.value 它的 undefined 因为 document.forms[0].sb 返回所有提交按钮的节点列表,与 document.getElementById('sb') 相同

4

7 回答 7

1

我建议您使用按钮,而不是多个提交按钮。在按钮的 onclick 属性中,使用 javascript 提交表单。

于 2013-03-19T09:45:47.070 回答
1

你可以这样试试

    <form>
        <input class="myButton" type="submit" name="sb" value="One">
        <input class="myButton" type="submit" name="sb" value="Two">
        <input class="myButton" type="submit" name="sb" value="Three">
    </form>

    <script type="text/javascript">
        $(".myButton").on('click', function() {
        alert($(this).val());
        });
    </script>
于 2014-10-15T11:51:15.310 回答
1

我对javascript有点陌生;如果我错了,请原谅我。如果您的 if 语句有第三个=符号,这不会有什么不同吗?

应该是:

if (document.getElementById('sb').value === "One") {
  //Do something
}
return true;
于 2015-12-11T06:48:55.200 回答
1

这是我认为解决此问题的更简单方法。它不需要任何额外的事件。

<script>
function submitForm(form) {
    console.log(document.activeElement.value);
    if (document.activeElement.value == 'One') {
       console.log("Have one.");
       return false;
    }
    return true;
}

</script>


<form action="" method="get" onsubmit="return submitForm(this);">
    <input type="submit" name="sb" value="One">
    <input type="submit" name="sb" value="Two">
    <input type="submit" name="sb" value="Three">
</form>

jsfiddle

我想要回答的是表单如何将查询设置为“?sb = {value}”。

于 2019-09-15T14:21:05.133 回答
0

您可以尝试使用 jquery,例如:

$(":submit").live('click', function() {
    alert($(this).val());
})
于 2013-03-19T09:46:43.987 回答
0

继续上面的答案:

<script>
function m(value) {
alert(value);
}
</script>

<input type="button" value="One" onClick="m(this.value)">
<input type="button" value="Two" onClick="m(this.value)">
<input type="button" value="Three" onClick="m(this.value)">

你当然可以看到 id 是什么:

<input type="button" id='myId' value="Three" onClick="m(this.id)">
于 2013-03-19T09:53:36.297 回答
0

这是一个非 jquery 的简单解决方案,用于检测单击了哪个提交按钮。

    <script>
function submitForm(form) {
    console.log(document.getElementById('btn_clicked').value);
    if (document.getElementById('btn_clicked').value === 'One') {
       console.log("Have one.");
       return false;
    }
    return true;
}
</script>

<form action="" method="get" onsubmit="return submitForm(this);" ;">

    <input type="hidden" name="btn_clicked" id="btn_clicked" value="">
    <input type="submit" name="sb" value="One" onclick="document.getElementById('btn_clicked').value='One';">
    <input type="submit" name="sb" value="Two" onclick="document.getElementById('btn_clicked').value='Two';">
</form>
于 2021-01-12T01:45:00.597 回答