按下按钮添加输入值检查

时间:2013-06-19 13:14:53

标签: javascript jquery function validation

这是我正在使用的代码:http://jsfiddle.net/9sX6X/21/

var container = $('.copies'),
    value_src = $('#current'),
    maxFields = 10,
    currentFields = 1;

$('.copy_form').on('click', '.add', function () {
    if (currentFields < maxFields) {
        var value = value_src.val();
        var html = '<div class="line">' +
            '<input id="accepted" type="text" value="' + value + '" />' +
            '<input type="button" value="X" class="remove" />' +
            '</div>';

        $(html).appendTo(container);
        value_src.val('');
        currentFields++;
    } else {
        alert("You tried to add a field when there are already " + maxFields);
    }
})
    .on('click', '.remove', function () {
    $(this).parents('.line').remove();
    currentFields--;
});

如果在按下添加按钮时输入框中没有任何内容,我想停止添加字段,因此,例如,当用户单击添加并且框中没有任何内容时,我希望出现警报。

我认为它是这样的,但我是javascript的新手:

if { val == null
alert("Nothing to be added");
}

有人能告诉我如何在我当前的代码中实现此检查吗?

7 个答案:

答案 0 :(得分:1)

if ($.trim(value) != "") {
      var html = '<div class="line">' +
          '<input class="accepted" type="text" value="' + value + '" />' +
          '<input type="button" value="X" class="remove" />' +
          '</div>';

      $(html).appendTo(container);
      value_src.val('');
      currentFields++;
}
else{
     alert("no value")
}

演示---> http://jsfiddle.net/9sX6X/23/

答案 1 :(得分:1)

这是基于你的JsFiddle

增加的部分是:

if ($('#current').val().length <= 0) {
    alert("Nothing to be added");
    return;        
}

答案 2 :(得分:1)

尝试

var value = $.trim(value_src.val());
if(!value){
    alert('empty');
    return;
}

例如:

var container = $('.copies'),
    value_src = $('#current'),
    maxFields = 10,
    currentFields = 1;

$('.copy_form').on('click', '.add', function () {
    if (currentFields < maxFields) {
        var value = $.trim(value_src.val());
        if(!value){
            alert('empty');
            return;
        }

        var html = '<div class="line">' +
            '<input class="accepted" type="text" value="' + value + '" />' +
            '<input type="button" value="X" class="remove" />' +
            '</div>';

        $(html).appendTo(container);
        value_src.val('');
        currentFields++;
    } else {
        alert("You tried to add a field when there are already " + maxFields);
    }
})
.on('click', '.remove', function () {
    $(this).parents('.line').remove();
    currentFields--;
});

演示:Fiddle

答案 3 :(得分:1)

var container = $('.copies'),
    value_src = $('#current'),
    maxFields = 10,
    currentFields = 1;

$('.copy_form').on('click', '.add', function () {
    if (currentFields < maxFields) {
        var value = value_src.val();
        if (value == "") {
            alert("No input");
        }
        else{
        var html = '<div class="line">' +
            '<input id="accepted" type="text" value="' + value + '" />' +
            '<input type="button" value="X" class="remove" />' +
            '</div>';

        $(html).appendTo(container);
        value_src.val('');
        currentFields++;
       }
    } else {
        alert("You tried to add a field when there are already " + maxFields);
    }
})
    .on('click', '.remove', function () {
    $(this).parents('.line').remove();
    currentFields--;
});

答案 4 :(得分:1)

由于您的默认值为add,因此只需进行简单检查即可:

if (this.value == "Add" || this.value == "") {
    alert("empty!");
    return false;
}

演示:http://jsfiddle.net/9sX6X/24/

答案 5 :(得分:1)

条件可能是:

if ($.trim(value_src.val()) != '') {

这是将值与''(一个空字符串)进行比较。它还使用jQuerys $.trim()从值的开头和结尾删除任何空格,这样如果值只包含空格,那么它将不会通过检查。

Fiddle

添加到您的代码中,它看起来像:

if ($.trim(value_src.val()) != '') {
    if (currentFields < maxFields) {
        var value = value_src.val();
        var html = '<div class="line">' +
            '<input class="accepted" type="text" value="' + value + '" />' +
            '<input type="button" value="X" class="remove" />' +
            '</div>';

        $(html).appendTo(container);
        value_src.val('');
        currentFields++;
    } else {
        alert("You tried to add a field when there are already " + maxFields);
    }
} else {
    alert("You didn't enter anything");
}

答案 6 :(得分:1)

工作演示:http://jsfiddle.net/9sX6X/28/

在你的第一个if语句中检查输入的长度:

if($.trim(value) != '')

将您的代码更改为:

var container = $('.copies');
    value_src = $('#current');
    maxFields = 10;
    currentFields = 1;

$('.copy_form').on('click', '.add', function () {
    if (currentFields < maxFields) {

        var value = value_src.val();
        if($.trim(value) != ''){
            var html = '<div class="line">' +
                '<input class="accepted" type="text" value="' + value + '" />' +
                '<input type="button" value="X" class="remove" />' +
                '</div>';

            $(html).appendTo(container);
            value_src.val('');
            currentFields++;
        }else{
            alert('Field empty!');
        }
    } else {
        alert("You tried to add a field when there are already " + maxFields);
    }
})
    .on('click', '.remove', function () {
    $(this).parents('.line').remove();
    currentFields--;
});