2
<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$(document).ready(function() {
    $("input[name='search_user_submit']").click(function() {
        var cv = $('#newInput').val();
        var cvtwo = $('input[name="search_option"]:checked').val();
        var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables
        $("#SR").html('<img src="loading.gif"/>').show();
        var url = "user.php";
        $.post(url, data, function(data) {
            $("#SR").html(data).show();
        });

    });
});
});//]]>  
</script>

当我按下按钮时这很好用,但是当我按下回车键时,所有变量及其值都会显示在地址栏中。

那么我如何为此目的添加按键事件:-

我已经尝试过这个按键代码仍然无法正常工作: -

<script type="text/javascript">
$(window).load(function(){
    $(document).ready(function() {
    function Script(e) {
        if (e.keyCode == 13) {
             var cv = $('#newInput').val();
            var cvtwo = $('input[name="search_option"]:checked').val();
            var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables
            $("#SR").html('<img src="loading.gif"/>').show();
            var url = "user.php";
            $.post(url, data, function(data) {
                $("#SR").html(data).show();
            });
        }
    }
    });
});
</script>

同样对于按键,我在单击选项按钮时创建了文本框,并且在我的 javascript 中我已经指定了这个:-

input.onkeypress = 'return Script(event)';

4

3 回答 3

2

您应该使用表单,并且有一个onsubmit事件而不是处理回车键。

<form id="myform">
    <!-- ... -->
    <input type="submit">
</form>

<script>
document.getElementById("myform").onsubmit = function (ev) {
    ev.preventDefault();
    // ...
}
</script>

没有进行错误检查,但希望你明白这一点。

于 2012-04-18T05:20:52.663 回答
1

我觉得你想执行 ajax 调用,然后按 enter 按钮

尝试这个

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$(document).ready(function() {
    $("input[name='search_user_submit']").keyup(function(event){

    if(event.keyCode == 13)
{


        var cv = $('#newInput').val();
        var cvtwo = $('input[name="search_option"]:checked').val();
        var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables
        $("#SR").html('<img src="loading.gif"/>').show();
        var url = "user.php";
        $.post(url, data, function(data) {
            $("#SR").html(data).show();
}
        });

    });
});
});//]]>  
</script>
于 2012-04-18T05:24:14.190 回答
0

要回答您的问题,我认为按 Enter 将表单发送到浏览器,并且它必须是操作设置为 GET 的表单(或没有,默认为 GET)。这会导致浏览器刷新并且表单变量作为查询字符串出现在 URL 中。浏览器刷新会阻止您的脚本真正被执行(或者它在页面重新加载时被执行,所以您看不到它)。

e.preventDefault()如果你这样做Script(),那将阻止该默认操作发生。

[编辑] Gopal 打败了我,给出了几乎相同的答案。

我确实想补充一点,jQuery 处理事件绑定和东西,也许为了更好的流程,你可以function Script(e)

$('input').keypress(function(e) {
    if (e.keyCode == 13) {
        e.preventDefault();
        var cv = $('#newInput').val();
        var cvtwo = $('input[name="search_option"]:checked').val();
        var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables
        $("#SR").html('<img src="loading.gif"/>').show();
        var url = "user.php";
        $.post(url, data, function(data) {
            $("#SR").html(data).show();
        });
    }
});

然后你就不需要input.onkeypress = 'return Script(event)';任何地方了。jQuery对几乎任何事件都有类似的功能.keypress()(参见jQuery 的 keypress.bind() ),您甚至可以使用它来绑定多个事件。请参阅文档以了解更多信息。

于 2012-04-18T05:22:05.657 回答