从动态文本框中获取值时遇到一些问题。我的文本框看起来像这样:
这是我获取值的HTML代码:
$('#pilihtambahan input[type=text]').each(function(index) {
if (valData2 == "") {
valData2 = valData2 + $(this).val();
} else {
valData2 = valData2 + "," + $(this).val();
}
});
如果我在文本框“jumlah sewa showcase”中插入一个值为“1”并在“jumlah sewa灶”文本框中插入带有“2”的文本,结果将是这样的
1,<null>,2
我不知道要删除null
值。我的目标是结果将是这样的
1,2
也许有人可以帮我解决这个问题。谢谢。
答案 0 :(得分:3)
您可以在将值附加到字符串之前检查该值的length
属性。
然而,更好的方法是使用map()
然后join()
将它们组合在一起构建值数组。由于空字符串值是假的,您可以在map()
中使用三元表达式来返回所需的值或完全跳过它。试试这个:
var values = $('#pilihtambahan input[type=text]').map(function(index) {
return this.value ? this.value : null;
}).get().join(',');
答案 1 :(得分:1)
查看$(this).val().length
或$(this).val()!=""
您修改后的代码为:
$('#pilihtambahan input[type=text]').each(function(index) {
var val = $(this).val();
if (val.length) {
if (valData2 == "") {
valData2 += valData2 + val;
} else {
valData2 = valData2 + "," + val;
}
}
});
OR
$('#pilihtambahan input[type=text]').each(function(index) {
var val = $(this).val();
if (val !="" && val!=null) {
if (valData2 == "") {
valData2 = valData2 + val;
} else {
valData2 = valData2 + "," + val;
}
}
});
为了增强你可以做的更多:
$('#pilihtambahan input[type=text]').each(function(index) {
var val = $(this).val();
if (val.length) {
if (valData2 == "") {
valData2 += val;
} else {
valData2 += "," + val;
}
}
});
答案 2 :(得分:1)
你去吧
$('.btn').on('click', function() {
arr = [];
$('input[type=text]').each(function() {
var value = $(this).val();
//if(value){
if (value.length) {
arr.push(value);
}
});
console.log(arr);
$('p').html(arr)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<br />
<input type="text">
<br />
<input type="text">
<br />
<button class="btn">
test
</button>
<p>
</p>