2016-03-19 3 views
0

Я строю форму, которая проверяет с помощью javascript и Codeigniter 3.04. здесь мой HTML кодЗакрыть javascript оповещения без страницы обновления с помощью Codeigniter 3

<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 ");  
    } 
} 

Когда тревога шоу, а потом нажмите кнопку ОК, все данные в моей предыдущей форме ясно, так что я должен написать его снова. Когда я использую Codeigniter 2.00, этого не происходит, но в этой новой версии все обновляется, я думаю, что весь кеш был сброшен. Можете ли вы помочь мне удалить это «обновление» только на этой странице.

Благодаря

ответ

0

Вы можете использовать свою функцию так, как вы, но вы должны убедиться, что диалоговое окно предупреждения останавливает форму от отправленного!

Так вставить return, прежде чем функция называется:

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

И сделать что-то функция возврата:

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; 
    } 
} 

Таким образом, если функция возвращает ложь браузер не отправляет форму, только если функция возвращает true, она отправит форму.
И если форма не отправлена, значения не исчезнут.

+0

Он работает, спасибо :) – Chris

0

Вы завершения заполнения формы попробуйте добавить эти строки кода:

$("#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 в виде:

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

Это не работает, но он работает. Если я использую codeigniter 2.00, или, может быть, я сначала отключу что-то в этой структуре? – Chris

+0

Если вы собираетесь сделать это, можете удалить «onsubmit» и сделать все дело в одном обработчике отправки – 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

Ой, хорошо, так что это не проблема с кодеминером. но я чувствую себя иначе с CI 2, особенно когда я нажимаю на предыдущую страницу. Но спасибо за ваш ответ :) – Chris

+0

@Fatchul Да. В любой момент! – Mihir

Смежные вопросы