jquery animate没有触发onchange

时间:2011-07-18 18:14:01

标签: javascript jquery select onchange

我有一个SELECT,我想让它在onchange上动画一下,继续使用SELECT代码:

<select id="account_select" onchange="submit_value()">
<option value="">Select account</option>
<option value="1">Account 1</option>
<option value="2">Account 2</option>
</select>

继承人jquery:

function show_keyboard ()
{
    $('.keyboard').animate({bottom: '0px'}, 2000);
}

function submit_value ()
{
    if (!is_number($('#account_select').val()))
    {
        alert('You must select an account');
    }
    else
    {
        show_keyboard();
    }
}

问题是,在我选择一个帐户后,我必须点击屏幕上的某个位置才能通过show_keyboard功能显示键盘。我不知道为什么。

4 个答案:

答案 0 :(得分:1)

不使用内联JavaScript更好/更清洁。

只需使用jQuery的change()

http://jsfiddle.net/rw4qB/

修改

我将使用的代码:

function show_keyboard ()
{
    $('.keyboard').animate({bottom: '0px'}, 2000);
}

$('#account_select').change(function() {
    if ($(this).val() == '') {
        alert('Please select an account');
        return true;
    }

    show_keyboard();
});

答案 1 :(得分:0)

HTML

<select id="account_select">

的jQuery

$('#account_select').change(submit_value);

答案 2 :(得分:0)

请告诉我这是否适合您:

<html>
<head>
    <script type="text/javascript" src="jqueryMIN.js"></script>
    <script>

    function hello() {
        var selObj = $('#direction');
        var slider = $('#slider');

        if (!parseInt(selObj.val()))
        {
             alert('You must select a direction');
        }
        else
        {
             switch(parseInt(selObj.val()))
             {
                case 1:
                    slider.animate({top: 100}, 800)
                break;

                case 2:
                    slider.animate({left: 100}, 800)
                break;

                case 3:
                    slider.animate({ top: 0, left: 0 }, 800)
                break;
             }
        }
    }
    </script>
</head>



<body>
    <select id="direction" onchange="hello()">
        <option value="">Select an direction</option>
        <option value='1'>down</option>
        <option value='2'>right</option>
        <option value='3'>reset</option>
    </select>
    <div id='slider' style='position: relative; display: block; background-color: #00f; width: 100px; height: 100px;'></div>
</body>

将jquery引用替换为jquery-version.js文件的路径。如果这不能按预期工作,那么jquery库文件可能出错。如上所述,我不建议使用内联方法,但为了举例,我将它包含在这里。

希望这有帮助。

答案 3 :(得分:-1)

我知道使用jquery更改功能是一种更好的方法...这个问题似乎在浏览器刷新后自行解决。