Удаление пустых элементов ввода из формы - PullRequest
2 голосов
/ 07 июня 2011

У меня есть простая форма для создания всех требований к форме и проверке для codeigniter.То, что я хочу сделать, это отфильтровать любые пустые входные данные до сериализации, чтобы я не создавал входные данные формы и правила набора проверки формы.Я в растерянности относительно того, как идти об этом.Где у меня есть предупреждение в Jquery, где я хочу удалить все пустые входные данные (снова перед сериализацией). На этом этапе то, что я использую, не обнаруживает пустые поля формы. Без кода обнаружения вся система работает нормально.Вот что я использую

    <h1>Field Name</h1>
    <form action="Form.php" onsubmit="return false;" id="form" method="post">
    <input type="text" name="v1" id="v1" /> 
    <input type="text" name="v2" id="v2" /> 
    <input type="text" name="v3" id="v3" /> 
    <input type="text" name="v4" id="v4" /> 
    <input type="text" name="v5" id="v5" /> 
    <input type="text" name="v6" id="v6" /> 

<input type="submit" name="send" id="send" value="Send" />
        </form>
<hr />
<script>
$(function(){
$('#send').click(function(){ 
---------------------------------------   
    $(":input").each(function() {
    if($(this).val() === "")
    alert("Empty Fields!!"); //using alert just to see if empty fields are detected.
    return false;
});
-----------------------------------------
var data = $('#form').serialize();
    $.ajax({
        type: "POST",
        data: data,
        url: "Form.php",
        success: function(msg){
             if(msg){
                $('#display').html(msg).show();
             }else{
                $('#display').text("<p>nothing came back</p>");
             }
        }       
    });
return false;    
});
});

Я просто пытаюсь избежать распечатки пустых полей формы

<p>
<label for=""></label> <br />
<input type="text" name="" id="" /> <br />
<label class="error" id=""> This field is required</label> <br />
<p/>

Спасибо за ваше время

Ответы [ 4 ]

3 голосов
/ 07 июня 2011

Это удалит все текстовые поля со значением длины 0:

$('#send').click(function(){ 
$(':input[type="text"]').filter(function(e){
    if (this.value.length===0){
      return true;
    }  
}).remove();
    });

пример: http://jsfiddle.net/niklasvh/ZBSyX/

1 голос
/ 07 июня 2011

Чтобы скрыть элементы, которым не назначено value:

$('input:text[value=""]').hide();

Но, конечно, если в html указан атрибут value="x", это приведет к отображению элемента.

1 голос
/ 07 июня 2011
    $('#send').click(function(){ 
//---------------------------------------   
    $(":input").each(function() {
    if($(this).val() === "")
    alert("Empty Fields!!"); //using alert just to see if empty fields are detected.
    return false;
});

И вы не получаете сообщение об ошибке?Область первой лямбды не закрыта.

Используйте Firebug, чтобы выделить возможные ошибки и опубликовать их.

1 голос
/ 07 июня 2011

Вы должны использовать выражение регулярного выражения, используя \ s в качестве поискового запроса. Поэтому / ^ (\ s) * $ / в качестве регулярного выражения и просто убедитесь, что ввод не соответствует этому.

Извините, но я не знаком с Jquery, или я бы точно написал код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...