我有一个为ajax调用创建数据字符串的循环。这是代码:
$(':input','#texes-test-entry-0').not(':button, :submit, :reset, :hidden').each(function(){
varStr = $(this).attr("id").split('-');
dataString = dataString + '&' + varStr[1] + '=' + $(this).val();
});
对于所有文本输入$(this).val()获取我需要的值,但对于选择输入,我不需要文本值,而是选择的选项值。
如何捕捉选择输入并以不同方式对待它们?
由于
答案 0 :(得分:0)
尝试将if放在选择所有输入的循环内,并检查当前元素是否有选项,如果是,则不处理它。
if($(this).has('option'))
{
<ignore>
}
else
{
<process>
}
答案 1 :(得分:0)
您不需要以不同方式处理选择元素,val
方法将从选择中获取所选值。
示例:
<script type="text/javascript">
$(function(){
var data = [];
$(':input','#texes-test-entry-0').not(':button, :submit, :reset, :hidden').each(function(){
varStr = $(this).attr("id").split('-');
data.push(varStr[1] + '=' + $(this).val().replace(/%/g,'%37').replace(/&/g,'%38'));
});
var dataString = data.join('&');
alert(dataString);
});
</script>
<form id="texes-test-entry-0">
<input type="text" id="x-id1" value="as%&df" />
<select id="x-id2">
<option value="1">one</option>
<option value="2" selected="selected">two</option>
<option value="3">three</option>
</select>
</form>
输出:
id1=as%37%38df&id2=2