我目前有两个输入字段,可以将值“value”切换为true或false。
我想要发生的是当用户点击提交按钮时,我可以为每个输入字段运行if / then语句,并为每个字段传递一个不同的变量,然后将这两个变量合并为一个变量。 / p>
例如。
if ($('input#one').is('[value="true"]')) {
var one = 'opt-in-one'
}
else {
var one = 'opt-out-one'
}
if ($('input#two').is('[value="true"]')) {
var two = 'opt-in-two'
}
else {
var two = 'opt-out-two'
}
var result = one + two;
这是我能解释的最好的。任何想法如何写这个单击功能?
修改:这是HTML
<form>
<input type="hidden" name="optin1" id="optin1holder" value="true" />
<input type="hidden" name="optin2" id="optin2holder" value="true" />
<input type="submit" class="button" value="Submit">
</form>
答案 0 :(得分:2)
有几种方法可以解决这个问题,例如你可以这样做:
$(":submit").click(function() {
var result = ($('input#one').val() == 'true' ? 'opt-in-one' : 'opt-out-one')
+ ($('input#two').val() == 'true' ? 'opt-in-two' : 'opt-out-two');
//do something with result
});
如果您想要说"out-in-one,opt-out-two"
这样的格式,可以使用.map()
,如下所示:
$(":submit").click(function() {
var result = $('input#one, input#two').map(function() {
return (this.value == 'true' ? 'opt-in-' : 'opt-out-') + this.id;
}).get().join(',');
//do something with result
});
第二种方法适用于任意数量的输入,如果你给他们一个类,它会更清洁,然后你可以'input#one, input#two'
而不是'input.optinout'
。您也可以将.join(',')
更改为您想要的任何分隔符。