2016-03-19 1 views
0

javascriptとCodeigniter 3.04を使用して検証するフォームを作成します。ここに私のHTMLコードですCodeigniter 3を使用して、リフレッシュページなしでアラートのjavascriptを閉じる

<form class="form-horizontal" method="POST" onsubmit="check()"> 
    //code 
</form> 

データベースに挿入する前に私の関数のJavaScriptで長さの文字をチェックします。ここに私の機能

function check(){ 
    var title = document.getElementById('txt_check').value.length; 
    if (title <= 50) { 
     alert("The title length less than 50 Character ");  
    } 
} 

アラートが表示されたら、[OK]をクリックすると、以前のフォームのデータはすべてクリアされますので、再度書き込む必要があります。 Codeigniter 2.00を使用すると、それは起こらないが、この新しいバージョンではすべてがリフレッシュされ、すべてのキャッシュがリセットされたと思う。あなたは私にこのページを "リフレッシュ"するのを手伝ってもらえますか?

$("#my-form").submit(function(e){ 
    e.preventDefault(); 

    var title = document.getElementById('txt_check').value.length; 
    if (title <= 50) { 
     alert("The title length less than 50 Character ");  
    } 
}); 

、フォームにIDを追加します:

おかげ

答えて

0

機能は使用したとおりに使用できますが、アラートのダイアログで送信されたフォームが停止していることを確認する必要があります。関数がfalseを返すのであれば、ブラウザは、フォームのみを送信しません

function check(){ 
    var title = document.getElementById('txt_check').value.length; 
    if (title <= 50) { 
     alert("The title length less than 50 Character ");  
     return false; 
    } 
    else{ 
     return true; 
    } 
} 

<form class="form-horizontal" method="POST" onsubmit="return check();"> 
    //code 
</form> 

を、関数の戻り何かを作る:

だから、関数が呼び出される前にreturnを挿入関数がtrueを返す場合は、フォームを送信します。
フォームが送信されない場合、値は消えません。

+0

それは動作します、ありがとう:) – Chris

0

あなたは、フォームのコードのこの行を追加してみてくださいsubmitingされているすべての

<form id="my-form" class="form-horizontal" method="POST"> 
+0

動作しませんが、動作します。私がcodeigniter 2.00を使用していた場合、または最初にこのフレームワークで何かを無効にしていましたか? – Chris

+0

これを行うつもりなら、 'onsubmit'を削除して1つの送信ハンドラですべてのビジネスを行うかもしれません – charlietfl

+0

https://jsfiddle.net/jorge182/4r7acys1/ –

0

まず、そうではありませんCodeigniterに関連する問題。 フォームが送信されないようにする必要があります。 onSubmit="check()"を削除し、このコードをあなたのjavascriptファイルに追加してください。

$(".form-horizontal").submit(function(e){ 
    var title = $('#txt_check').val(); 
    if(title.length<=50){ 
     alert('Title length is short'); 
     e.preventDefault(); 
     return false; 
    } 
}); 

また、あなたがid="txt_check"ではなくクラスを使用していることを再確認してください。 idには#が使用されます。そして、点には.のドットが使用されます。

+0

大丈夫です。だから、これはcodeigniterの問題ではありません。 CI 2とは違った感じがします。特に、前のページに戻ると、しかし、あなたの答えに感謝:) – Chris

+0

@ Fatchulはい。どんなときも! – Mihir

関連する問題