0

我想使用onChange()inselect但所有这些命令都不适合我:

HTML

<form method="post" name='testBank' id="testBank" enctype="multipart/form-data">
<select name="major_id" id='major_id' onchange="this.submit();">
        <option value="">---</option>
        <?
        $query = mysql_query("select * from at_majors where view='1'");
        while($row=mysql_fetch_assoc($query)){
            ?><option value="<? echo $row['major_id']?>" > TEST </option><?
            }
        ?>
    </select>
    </form>

命令

onchange="this.submit()"
onchange="testBank.submit();"
onchange="this.testBank.submit()"
onchange="submit()"
onchange="document.all.submit()"
onchange="document.testBank.submit();"

我收到此错误:

this.submit is not a function

重要的

我不喜欢在这种方法中使用 jquery 或 javascript。请帮我修复这个问题。谢谢

4

5 回答 5

2

那是因为您正在尝试提交select标签,而不是表单。

<form method="post" name='testBank' id="testBank" enctype="multipart/form-data">
<select name="major_id" id='major_id' onchange="document.getElementById('testBank').submit();">

这应该有效。

编辑

这也应该有效:

<select name="major_id" id='major_id' onchange="this.form.submit();">
于 2013-01-31T09:23:19.603 回答
1

所以这是你的表格(为了演示的目的做了一点简化):

<form name='testBank'>
<select name="major_id" onchange="submitTestBank();">
        <option value="">---</option>
        <option value="a">a</option>
        <option value="b">b</option>
</select>
</form>

然后是最简单的 JavaScript(通过它的名称引用表单):

function submitTestBank() {
    document.forms.testBank.submit();
}

当然,您可以直接添加document.forms.testBank.submit();onchange属性中。不过,拥有一个单独的功能submitTestBank更可重用。如果您想将提交处理程序附加到多个selectinput元素,它会有所帮助。

在行动中看到它。

于 2013-01-31T09:31:20.577 回答
1

尝试这个

<select name="major_id" id='major_id' onchange=this.form.submit();">
于 2013-01-31T09:24:44.727 回答
1

如果提交输入元素的名称为“提交”,则表单将不会提交。所以请删除提交。

避免这种情况

<input type="submit" name="submit" value="submit">

用这个

<input type="submit" name="xxx" value="xxx">
于 2014-08-06T15:53:43.990 回答
0

你不喜欢使用 jQuery,那么试试这个:

<select name="major_id" id='major_id' onchange="doSomething(this)">

让 sur 在 select 元素之前定义您的 javascript:

function doSomething(sel) {
    alert(sel.options[sel.selectedIndex].value);
}
于 2013-01-31T09:24:09.980 回答