Jquery textinput更改功能不起作用

时间:2012-01-01 07:40:06

标签: php javascript jquery

我只是从PHP GET方法获取参数并使用jQuery来使用它们。运行页面时没有输出。

<?php
    if (isset($_GET['url'])){
        $url = $_GET['url'];
        $url = explode(" " , $url);
        echo end($url);
        exit;
    }
?>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript">
    $('input[type=text]').change(function (){
        if ($(this).val() !== ''){
            var url = $(this).val():
            $.post('grab.php?url='+url+'', function (data){
                window.open(data, 'Download', 'width=10,height=10');
                $(this).html('');
            });
        }
    });
</script>
</head>
<body>
<input type="text" style="width:100%;height:20px;"/>
</body>
</html>

我是设计新手,希望有错误。

3 个答案:

答案 0 :(得分:1)

首先将您的文档置于标准模式(通过在开头使用适当的doctype,这意味着HTML 4 / XHTML 1严格或HTML 5)。然后,您可以使用错误控制台进行调试。

我发现以下错误

Unexpected token: ':' on line 7,

结肠应该是分号。

var url = $(this).val():

然后,实际上没有发生任何事情的原因是因为在调用/缓存脚本时输入不存在。你需要在构造DOM之后执行它。

$(document).ready(function() {
   // content
});

最终代码。

$(document).ready(function() {
   $('input[type=text]').change(function (){
      if ($(this).val() !== ''){
         var url = $(this).val();
         $.post('grab.php?url='+url+'', function (data){
            window.open(data, 'Download', 'width=10,height=10');
            $(this).html('');
         });
      }
   });   
});

答案 1 :(得分:0)

将它放在$(document).ready()中,如下所示:

$(document).ready(function() {
    $('input[type=text]').change(function (){
        if ($(this).val() !== ''){
            var url = $(this).val():
            $.post('grab.php?url='+url+'', function (data){
                window.open(data, 'Download', 'width=10,height=10');
                $(this).html('');
            });
        }
    });
});

答案 2 :(得分:0)

我认为在文本输入上使用.change事件是不可取的。通常.blur和.focus更合适。

$(document).ready(function() {
$('input[type=text]').blur(function(){
    var currentInput = this;
    if ($(currentInput ).val() != ''){
        var url = $(currentInput ).val();
        $.post('grab.php?url='+url, function(data){
            window.open(data, 'Download', 'width=10,height=10');
            $(currentInput).val('');
        });
    }
});
});