2011-12-23 19 views
1

テキスト入力がURLかどうかをチェックするこのスクリプトがあります。Submitアクションはjquery関数ではありません

入力が正しい場合は、アクションを実行する必要があります。

問題は、今すぐボタンがアクションを実行せず、テキストボックスが有効なURLであるかどうかをチェックするだけで、コードを正しく理解できません。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> 
<script type="text/javascript"> 

jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 
});; 
</script> 



<script> 
    $(document).ready(function(){ 
    $("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     url: true 
    } 
    } 
}); 

$("#field").keyup(function(){ 
$('#myform').valid(); 
}); 
    }); 
    </script> 



<form id="myform" action="http://google.com"> 
    <label for="field">Required, URL: </label> 
    <input class="left" id="field" name="field"/> 
    <br/> 
    <input type="submit" value="Go" /> 
</form> 
+0

「アクションを実行する」とはどういう意味ですか?フォームを提出しますか? - 問題は、「Go」ボタンフォームをクリックしたときに送信されないということです。 – redShadow

+0

赤シャドウ。 –

答えて

0

をここでそれをいじることによって:http://jsfiddle.net/jJ7Fh/14/私はいくつかの理由で、通常のフォームの実行を妨げている、debug: trueのようだということが分かりました。その行をコメントアウトしてください。それは正常に動作します。

0

これを試してみてください:http://jsfiddle.net/S4WdN/1/

jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 
}); 

$(document).ready(function() { 

    $("#myform").validate({ 
     rules: { 
      field: { 
       required: true, 
       url: true 
      } 
     } 
    }); 

    $("#field").keyup(function(){ 
     $('#myform').valid(); 
    }); 

    $("#myform").submit(function(e) { 
     e.preventDefault(); 

     if($(this).valid()) { 
      $(this).submit(); 
     } 
    }); 
}); 
+0

フォームにSUBMITイベントリスナーを追加するのを忘れた。この場合、フォームを完全に提出するのを停止します。フォームが検証された場合にのみ、ユーザーは入力されたアドレスにリダイレクトされます。 –

+0

Aymanありがとうございますが、URLではなくアクションを実行する必要があります。これは、特定のコードでアクションが重要なためです。したがって、基本的には、ユーザーに無効なURLを伝えるためにjqueryが必要なのは、通常のフォームだということだけです。 –

+0

@JohnSmith、私は代わりにフォームを送信する私の答えを編集しました。 –

関連する問題