onclick =“submit();”的不同行为在不同的浏览器

时间:2015-10-22 09:37:14

标签: javascript jquery html

所以这是我的问题:

base.html文件

<html>
    <head>
    <head>
    <body>
        <form action="select.html">
            <select name="decide" onclick="submit();">
                <option>Choose Me!</option>
                <option>No me!</option>
                <option>We both know you want to choose me</option>
                <option>Nobody ever chooses me :(</option>
            </select>
        </form>
    </body>
</html>

onlick="submit();"属性在不同的浏览器中有不同的行为。

在Opera和Chromium中,网站的行为符合我的要求。 如果单击选择列表,弹出列表,您可以选择一个条目。 在Firefox和Internet Explorer中,onclick属性将列表中的第一项作为请求发送到服务器,然后在单击选择列表时弹出列表。

enter image description here

如何阻止Firefox和Internet Explorer首先触发并稍后询问? :/

我对Javascript和jquery不太熟悉,而且我正在使用Django 1.8.4 提前致谢

3 个答案:

答案 0 :(得分:4)

我猜你实际上想要在选择某个项目时触发,而不是在点击下拉列表时触发,所以请点击更改为onchange

编辑 - 这样的事情(纯粹的js不是jquery)

branch1

然后是js

<form action="select.html" name="frmDecide">
<select name="decide" onchange="submitForm(this);">
    <option value="">Please select...</option>
    <option>Choose Me!</option>
    <option>No me!</option>
    <option>We both know you want to choose me</option>
    <option>Nobody ever chooses me :(</option>
</select>

答案 1 :(得分:0)

如果你想要一个占位符(种类),你可以改用:

    <select name="decide" onchange="submit();">
        <option selected style="display: none;">Select your option</option>
        <option>Choose Me!</option>
        <option>No me!</option>
        <option>We both know you want to choose me</option>
        <option>Nobody ever chooses me :(</option>
    </select>

答案 2 :(得分:-1)

你的意思是这样吗?

<强> HTML

<select id="my-select" name="decide">
    <option>Choose Me!</option>
    <option>No me!</option>
    <option>We both know you want to choose me</option>
    <option>Nobody ever chooses me :(</option>
</select>

<强> JS

$('#my-select').on('click', function(){
     // do something
     submit();
});

$('#my-select').on('change', function(){
     // do something
    submit();
});

$('#my-select').on('select', function(){
     // do something
    submit();
});