单击“链接”以选择值并提交表单

时间:2015-12-31 18:52:55

标签: javascript php forms

我有一个现有的表单,使用下拉菜单和提交按钮,它工作正常。

我想为表单之外的选择类别链接或图片添加直接链接 - 我该如何实现?

我的尝试不起作用。
任何建议都表示赞赏!

<form method="post" action="page.php?cat" id="searchcat"> 
    <select name="Categories">
        <option selected>Browse...</option>
        <option value="j001">Option 1</option>
        <option value="j002">Option 2</option>
        <option value="j003">3</option>
        <option value="j004">4</option>
        ...
    </select>
</form>

<a onclick="SelectItemByValue(document.getElementById('searchcat'), j004);">
    Click here to submit option#4
</a>

<script>
function SelectItemByValue(element, value) {
    if (value !== undefined && value !== null) {
        var length = element.options.length;
        for (var i = 0; i < length; i++) {
            if (element.options[i].value === value) {
                element.selectedIndex = i;
                return;
            }
        }
    }
}
</script>

1 个答案:

答案 0 :(得分:0)

直截了当,用html和javascript查看changed的行:

<form method="post" action="page.php?cat" id="searchcat"> 
    <select name="Categories" id='cats'>  <!-- changed -->
        <option selected>Browse...</option>
        <option value="j001">Option 1</option>
        <option value="j002">Option 2</option>
        <option value="j003">3</option>
        <option value="j004">4</option>
        ...
    </select>
</form>

<a onclick="SelectItemByValue(document.getElementById('searchcat'), 'j004');"> <!-- changed -->
    Click here to submit option#4
</a>

<script>
function SelectItemByValue(form, value) { // changed
    var sel = form.elements.namedItem('cats'); // changed
    if (value !== undefined && value !== null) {
        var length = sel.options.length; // changed
        for (var i = 0; i < length; i++) {
            if (sel.options[i].value === value) { // changed
                sel.selectedIndex = i;
                form.submit(); // changed
                return;
            }
        }
    }
}
</script>

<小时/> 您的代码存在一些问题,例如:

  • 您在'上遗失了j004,因此:'j004';
  • 您的元素变量没有引用<select>元素;和
  • 您错过了提交表单的实际电话。

<小时/> 你提到你有一个按钮,如下所示:

<input id="search2" type="submit" name="submit" value="Search">

但在我的测试中,将按钮命名为submit会导致脚本停止工作。这段代码对我有用:

<button name='sent'>Search</button>

但请注意,以防您使用按钮作为isset:如果表单是通过锚点发送的,则不会sent检查是否isset。 ..