我有一个表单元素列表,我想循环以获取值,所以如果有人在输入中键入他们的名字我想要他们的名字,如果他们从选择框中选择了一个选项,我希望不是数值但是字符串。所有这些值都需要输出为一个字符串。
这是我创建的循环,但是我不知道如何解决这个问题..
每个表单元素的名称都以credit _
开头如果有人能指出我正确的方向,那将非常感激..
$(this).parent().parent().find('[name*=credit_]').each(function( index ){
});
我的HTML非常简单。
<div class="comp-row">
<!-- a select -->
<!-- an input -->
</div>
这是表单的一部分,还有很多其他表单字段,但我只关注“comp-row”中我操作了很多的字段。
我最终使用了:
$('.comp-row [name*="credit_"]:not([type=hidden])')
.each(function(index,elem)
{
console.log($(this).text() != '' ? $(this).find('option:selected').text().trim() : $(this).val());
});
}
答案 0 :(得分:1)
根据您希望的格式,您可以使用serialize()
或serializeArray()
。
例如,获取整个表格:
var data=$('#myForm').serialize()
对于特定的元素组:
$('[name*=credit_]').serializeArray()
答案 1 :(得分:1)
var result = '';
$(this).parent().parent().find('[name*=credit_]').each(function( index ){
result += $(this).is("select") ? $(this).text() : $(this).val();
});
答案 2 :(得分:1)
您正在寻找$('select[name*="credit_"]>option:selected')
选择器。
要阅读您的文本值,请发出.text()
将此与if($('input[name*="credit_"]').text() != '')
评估相结合,结合如下:
var theName = $('input[name*="credit_"]').text() != ''
? $('select[name*="credit_"]>option:selected').text()
: $('input[name*="credit_"]').text();
答案 3 :(得分:0)
迭代符合条件的所有元素(name*=credit_
)。检查其类型并将值放在变量中。
HTML 的
<form>
<input type="text" name="credit_a" value="1" />
<input type="text" name="credit_b" value="2" />
<input type="text" name="credit_c" value="3" />
<select name="credit_d">
<option value="kk">kk</option>
<option value="jj" selected>jjjjj</option>
</select>
<input name="credit_e type="checkbox" checked value="imchecked" />
</form>
<form>
<input type="text" name="credit_a" value="55" />
<input type="text" name="credit_b" value="66" />
<input type="text" name="credit_c" value="77" />
<input type="text" name="credit_d" value="88" />
</form>
<p id="result"> </p>
的javascript
$(function() {
var values = '';
$('form [name*=credit_]').each(function() {
var $this = $(this);
if($this[0].tagName == 'TEXTAREA') {
values += ' ' + $this.text();
}
else if ($this[0].tagName == 'SELECT') {
values += ' ' + $this.find(':selected').text();
}
else {
values += ' ' + $this.val();
}
});
$('#result').html(values);
});
jsfiddle :http://jsfiddle.net/5tgzr/2/