[英]Ternary operators using jQuery
我正在尝试创建一个具有 4 个可能值的表单(类型:单选按钮)。 我想选择一个,然后将其值保存在 a.txt 文件中。
这是我的代码的一部分:
"Booster: " + ($("#tipoBooster").is(":checked")?"block I":"dark knight":"f1b":"custom")`
当我执行它时,它返回uncaught syntax error unexpected token ":"
。
我该如何修改它? 您还可以链接一些在线示例吗?
我的想法是:我的表单带有这些单选按钮:
O block I O dark knight O f1b O custom
如果我 select 一个,我想写"Booster: *selected one* "
作为我的 output(一个字符串)。
你有什么建议?
您应该在决策中涉及的所有input[type=radio]
元素的"change"
上添加一个事件侦听器
每次检查输入时都会触发侦听器。 当一个收音机被取消检查时它不会被触发,因为另一个收音机被检查了,所以监听器的执行保证每次"change"
只运行一次。
在事件侦听器中,您可以检查event.target.value
属性以获取选中的单选按钮,然后您可以根据需要操作 DOM。
我不是你想要做的 100%,但如果我理解正确,你可以做这样的事情:
<div>
<input type="radio" name="tipoBooster" value="block I">
<label>block I</label><br>
<input type="radio" name="tipoBooster" value="dark knight">
<label>dark knight</label><br>
<input type="radio" name="tipoBooster" value="f1b">
<label>f1b</label>
<div id="showStr"></div>
</div>
var divelm = $('#showStr');
$("input[name='tipoBooster']").on('change', function() {
if($(this).is(':checked')){
divelm.text('Booster: ' + $(this).val());
}
});
如果您想稍微压缩一下,您可以使用 && 执行类似的操作,仅在左侧为真时运行右侧的语句:
var divelm = $('#showStr');
$("input[name='tipoBooster']").on('change', function() {
$(this).is(':checked') && divelm.text('Booster: ' + $(this).val());
});
三元运算符只能有一个 else 跟随:
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
如果你想在一行中将它分解成多个三元表达式,但我不确定这是否是你要找的..
const isChecked = $("#tipoBooster").is(":checked");
const text = "Booster: " + (isChecked ? "block I" : (mySecondCondition ? "dark knight" : (myThirdCondition ? "f1b" : "custom")))
也就是说,我不能 100% 确定您想如何将其应用于建立广播组,但这里有一些很好的文档: https://developer.mozilla.org/en-US/docs/Web/HTML/元素/输入/无线电
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.