繁体   English   中英

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

[英]How to combine multiple text fields into textarea only when value is 1 or greater

我有这段代码用于将两个文本字段组合为单个字段,并将其复制为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链接以进行提琴演奏,则可以从评论中找到它。)

您真正需要做的就是检查该值是否大于一(考虑到默认情况下要输入的空间):

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??

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM