仅当值为1或更大时,如何将多个文本字段组合到textarea中

时间:2014-02-12 17:00:58

标签: javascript jquery html if-statement

我有这个代码用于将两个文本字段组合到单个字段并将其复制为textarea中的一行。现在,如果我留下一行未填充 - 它将在我的textarea中留下空行。

我试过写if> 0 / else语句以防止我的textarea中的空行,但让我们面对它,我只是简单的图形设计师,没有jquery或javascript的编码经验。

HTML

     1. 
     <label>Product </label><input type="text" id="text_1-1" value=""/>
     <label>Quantity </label><input type="text" class="sis" id="text_1-2" value=""/>
     <label>Combined </label><input class="yht" type="text" name="i1" id="text_1-3" value="" readonly/>

     <br><br>

     2. 
     <label>Product </label><input type="text" id="text_2-1" value=""/>
     <label>Quantity </label><input type="text" class="sis" id="text_2-2" value=""/>
     <label>Combined </label><input type="text" class="yht" name="i2" id="text_2-3" value="" readonly/>

     <br><br>

     3. 
     <label>Product </label><input type="text" id="text_3-1" value=""/>
     <label>Quantity </label><input type="text" class="sis" id="text_3-2" value=""/>
     <label>Combined </label><input type="text" class="yht" name="i3" id="text_3-3" value="" readonly/>

     <br><br>

     <textarea name="t" rows="3"></textarea>

JQUERY

    $(".sis").change(function(){
$("#text_1-3").val($("#text_1-1").val() + " " + $("#text_1-2").val());
$("#text_2-3").val($("#text_2-1").val() + " " + $("#text_2-2").val());
$("#text_3-3").val($("#text_3-1").val() + " " + $("#text_3-2").val());


var values = "";

    // EASY WAY TO RUN THIS ONLY ON CHANGE AND IF QTY IS MORE THAN 0 ???

$("input.yht").each(function(i) {
    values += (i > 0 ? "\n" : "") + this.value;
});
$("textarea").val(values);
    });

    // SO TEXAREA WOULD NOT COPY ANY EMPTY LINES??

这里FIDDLE

(如果有些原因我把givin链接搞砸了,你可以从评论中找到它。)

1 个答案:

答案 0 :(得分:0)

您真正需要的是检查该值是否大于1(假设您默认输入的空间):

if(this.value.length > 1)

完整代码:

$(".sis").change(function(){
    $("#text_1-3").val($("#text_1-1").val() + " " + $("#text_1-2").val());
    $("#text_2-3").val($("#text_2-1").val() + " " + $("#text_2-2").val());
    $("#text_3-3").val($("#text_3-1").val() + " " + $("#text_3-2").val());


    var values = "";

// EASY WAY TO RUN THIS ONLY ON CHANGE AND IF QTY IS MORE THAN 0 ???

    $("input.yht").each(function(i) {
        if(this.value.length > 1)
            values += (i > 0 ? "\n" : "") + this.value;
    });
    $("textarea").val(values);
});

// SO TEXAREA WOULD NOT COPY ANY EMPTY LINES??

Fiddle