Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中为隐藏的_字段设置整数?_Javascript_Jquery_Ruby On Rails 3 - Fatal编程技术网

如何在Javascript中为隐藏的_字段设置整数?

如何在Javascript中为隐藏的_字段设置整数?,javascript,jquery,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails 3,我有两个变量,比如JavaScript中的Question\u type和Answer\u type 我有一个没有值的隐藏\u字段,我想通过检查问题类型和回答类型的条件,将值插入隐藏\u字段,如下所示: If Question_type == 'A' && Answer_type == 'B' { hidden_field = 1; } else if Question_type == 'A' && Answer_type !== 'B' { hi

我有两个变量,比如JavaScript中的
Question\u type
Answer\u type

我有一个没有值的
隐藏\u字段
,我想通过检查
问题类型
回答类型
的条件,将
插入
隐藏\u字段
,如下所示:

If Question_type == 'A' && Answer_type == 'B' {
    hidden_field = 1;
} else if Question_type == 'A' && Answer_type !== 'B' {
    hidden_field = 2;
} else if Question_type !== 'A' && Answer_type == 'B' {
    hidden_field = 3;
{ else if Question_type !== 'A' && Answer_type !== 'B' {
    hidden_field = 4;
}

如何通过JavaScript中的简短形式或clean方法来实现这个概念?任何JSFIDLE示例都会更合适。

使用
getElementById
通过Id隐藏:

 var hidden_field = document.getElementById('HiddenFieldId');
 hidden_field.value = 1;

修改的代码:If应为If,条件必须在“()”内


为隐藏字段指定一些ID,并设置其值。

使用
三元运算符可以帮助缩短代码:

if (Question_type == 'A') {
    hidden_field.value = Answer_type == 'B' ? 1 : 2;
} else {
    hidden_field.value = Answer_type == 'B' ? 3 : 4;
}
var isA = Question_type == 'A',
    isB = Answer_type == 'B';

hidden_field =  isA &&  isB ? 4 :
                isA && !isB ? 3 :
               !isA &&  isB ? 2 :
                              1;

这里有一个选项可以缩短代码:

if (Question_type == 'A') {
    hidden_field.value = Answer_type == 'B' ? 1 : 2;
} else {
    hidden_field.value = Answer_type == 'B' ? 3 : 4;
}
var isA = Question_type == 'A',
    isB = Answer_type == 'B';

hidden_field =  isA &&  isB ? 4 :
                isA && !isB ? 3 :
               !isA &&  isB ? 2 :
                              1;

还有一个:

if (Question_type == 'A')
    if (Answer_type == 'B')
        hidden_field = 4;
    else
        hidden_field = 3;
else
    if (Answer_type == 'B')
        hidden_field = 2;
    else
        hidden_field = 1;

“如何通过缩写形式实现此概念…”您是在询问如何缩短此代码,还是如何设置字段的值?inside()是什么意思。我是javascript新手。请定义?@MalSu他有jQuery标记有问题。@Vinay如果条件1和条件2在JavaScript中无效,它应该是if(条件1和条件2)。@Shusl和Rails也是如此,但他是JS新手。我不认为显示jQuery对基本JS问题的答案是正确的方法。虽然为了完整性,答案应该保留。谢谢Shusl。。。非常感谢。@Vinay:我更新了答案(在顶部),因为我们真的不需要测试最后一个条件。如果前3个失败,那么最后一个将始终通过,因此永远不会设置
0
。是的,这里显示了最后一个语句的错误。”未捕获的语法错误:意外标记(“@Vinay:确保您正确复制了代码。上面的代码中没有任何语法错误。@Vinay:如果可以干净地完成,我更喜欢第一个示例。如果代码开始变得混乱或不清楚,那么我使用
if
语句。@Vinay:安全而正确的方法是将其作为
窗口的属性。如下所示:
window.question\u type=“foo”
。可以从
窗口
对象访问所有全局变量。