2012-01-01 13 views
3

PHP GETメソッドからパラメータを取得し、jQueryを使用してそれらを使用しています。ページを実行すると出力はありません。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> 

私はデザインに新しく、間違いがあることを願っています。

答えて

1

最初にドキュメントを標準モードにします(最初はHTML 4/XHTML 1 strictまたはHTML 5を意味する適切なdoctypeを使用します)。次に、デバッグにエラーコンソールを使用できます。

私はコロンがセミコロンである必要があり、次のエラーに

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(''); 
      }); 
     } 
    }); 
}); 
0

は$(ドキュメント).ready()のようにそれを置きます。通常、.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(''); 
     }); 
    } 
}); 
}); 
0

私は入力が賢明ではないテキストに.changeイベントを使用して思う:

$(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(''); 
     }); 
     } 
    }); 
}); 
関連する問題