获取所有空输入并将每个输入存储在唯一变量中

时间:2013-02-12 20:40:26

标签: jquery forms event-handling

我有一个包含多个输入的表单,在发送之前我检查是否有任何输入为空:

    <input type="text" name="number" id="number" style="float:left;clear:both;"/>
    <input type="text" name="road" id="road" style="float:left;clear:both;" />
    <input type="text" name="town" id="town" style="float:left;clear:both;" />
    <input type="submit" name="submit" value="submit" id="submit" />

jquery:

$('#submit').on('click', submitForm);
function submitForm(){
    if($('#number, #road, #town').val() ==''){
        $('#error-box').show();
        $('#error-box p').text('not all fields are complete - please complete to progress');
        return false;
    }
    else{
        alert('part 1 complete OK');
        $('#add-listing-part1').hide();
        $('#add-listing-part2').show();
        return false;
    }
} 

我想在错误框中准确显示哪些字段为空(带有友好的用户友好消息),但我不确定如何在没有if()语句加载的情况下最有效地执行此操作?

逻辑沿着:

  1. 检查是否有空白字段
  2. 如果'town'为空,将'town'存储在变量中,如果'road'为空..等等
  3. 将错误框中的文字更改为“'并非所有字段都已完整,请填写$ town和$ road ...'

1 个答案:

答案 0 :(得分:0)

您可以使用此代码:

function submitForm() {
    var empty = $('form input[value=""]');
    if (empty.length > 0) {
        $('#error-box').show();
        empty.each(function (index, element) {
            $('#error-box p').text($('#error-box p').text() + $(this).attr('name') + ' ');
        });
        $('#error-box p').text($('#error-box p').text() + 'fields are not filled');
    } else {
        // complete your submit
    }
}