我有一个带有多个提交按钮的简单html表单,我希望我的应用程序在我点击的任何提交按钮上采取不同的行为。
示例:
<form method="POST">
<input type="submit" value="test" name="test" />
<input type="text" name="search_query" style="width: 300px; padding: 5px" value="some text">
<input type="submit" value="Search" name="search" />
<input type="text" name="search_query2" style="width: 300px; padding: 5px" value="some text">
<input type="submit" value="Search" name="search2" />
<input type="submit" value="GO" name="next" />
</form>
这对我有用,我知道如何区分我点击的按钮。我遇到的问题是,如果我在编辑文本字段时按 Enter ,则会点击第一个提交按钮(名为test
的按钮)。这是否可以让浏览器知道(仅使用HTML - 这一点的目的是使其与 NO javascript一起使用)我推送 Enter 并且它应该发送{ {1}}使用POST,而不是search
?那么文本字段是否有某种绑定到提交按钮?
答案 0 :(得分:0)
此问题的解决方案是拥有多个form
元素,包括您的不同submit
按钮和相应的文本字段。
我无法想到只有一个公式但没有使用Javascript的解决方案。
答案 1 :(得分:0)
您可以将您想要提交的那个移动到该列表中的第一个,如下所示:
<form method="POST">
<input type="text" name="search_query" style="width: 300px; padding: 5px" value="some text">
<input type="submit" value="Search" name="search" />
<input type="submit" value="test" name="test" />
<input type="submit" value="GO" name="next" />
</form>
但似乎您的HTML形式不佳,我建议 Merguez的 回答
自编辑以来,没有Javascript / jQuery就无法做到这一点。
答案 2 :(得分:0)
这对PHP来说并不难。 第一步:将按钮更改为实际控件:
变为
<form method="POST">
<input type="text" name="search_query" style="width: 300px; padding: 5px" value="some
text" />
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Search">Search</button>
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Test">Test</button>
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Go">Go</button>
</form>
现在,提交表单时,请检查actionB的返回值。如果是&#34;搜索&#34;,则使用search_query的返回值将搜索网址拼凑在一起。
没有办法只使用HTML读取变量。如果您不打算使用脚本语言来执行此操作,则需要使用JavaScript。您可以在本机JavaScript中完全执行此操作。这个相对简单的函数不需要JQuery。
<script language="JavaScript">
function checkBtn() {
var btnX=document.getElementById("actionB").value;
if (btnX=="Search") {
// compose your new URL here
}
// repeat for each of the possible buttons
</script>
希望有所帮助! 史蒂夫