我在一个页面上有四个表单,我想为所有表单分配一个密码验证功能。我想获取当前密码字段的ID并进行进一步验证。
我得到了当前输入密码字段的ID,如下所示:
var id = $(this).attr('id');
现在我想使用三元if
来检查ID并为变量赋值。例如:
var a
if id==1
a= "a";
else if id==2
a= "b";
else if id==3
a = "c"
else if id==4
a = "d"
感谢任何帮助。
答案 0 :(得分:4)
通过三元运算符,您指的是这个:
var value = (condition)
? 'result if condition is true'
: 'result if condition is false';
我认为使用对象或switch
应该更清楚。
例如:
var values = {
1: 'a',
2: 'b',
3: 'c',
4: 'd',
}
var id = $(this).attr('id');
var result = values[ id ] ? values[ id ] : 'default';
// Alternative syntax using the || operator
var result = values[ id ] || 'default';
使用switch
声明。
var id = $(this).attr('id');
var result = getValue( id );
function getValue( id ) {
switch( id ) {
case 1: return 'a';
case 2: return 'b';
default: return 'default value';
}
}
答案 1 :(得分:0)
如果你真的想使用三元运算符:
var id = $(this).attr('id');
var a = (id==1) ? "a" : (id==2) ? "b" : (id==3) ? "c" : (id==4) ? "d" : undefined;
虽然如果你需要使用switch
对同一个变量做几次这样的比较,那将是一个更好的选择:
var a;
switch ($(this).attr('id')) {
case 1:
a = "a";
break;
case 2:
a = "b";
break;
case 3:
a = "c";
break;
case 4:
a = "d";
break;
}
如果id的值实际上是连续的数字,你甚至可以使用数组:
var id = $(this).attr('id');
var a = [, "a", "b", "c", "d"][+id];
答案 2 :(得分:-1)
def act(cntnt):
def do_thing(cntnt):
return(cntnt + "has it")
def do_other_thing(cntnt):
return(cntnt + "nope")
has_abc = cntnt.str.contains.contains("abc")
if has_abc == T:
cntnt[has_abc].apply(do_thing)
else:
cntnt[has_abc].apply(do_other_thing)

var something = ["a", "b", "c", "ddddd"];
$("form").on("submit", function(evt) {
evt.preventDefault();
var $password = $(this).find("[name='password']");
var bla = something[ +$password[0].id - 1 ]; // -1 since it's index (0) based
console.log(bla)
});