我是 javascript 的新手,我似乎无法弄清楚我错过了什么。我正在试验 jquery 的 ajax 函数。我被这段代码卡住了。这个想法是,当一个复选框被选中时,它会执行一个 php 脚本并将该脚本的状态输出到“Status”div。
我花了最后一个小时查看我的代码,我看不出我遗漏了什么。当然,我的 javascript 技能很低可能也无济于事。
function playback(){
$.ajax({
url:"ChangePlayback.php",
type: "GET",
if((document).getElementById('LoopPlayback').checked)
{
data: "playback=1",
}
else
{
data: "playback=0",
}
success:function(result){
$("#Status").html(result);
}
});
}
我在使用 Firebug 时遇到以下错误:
missing : after property id
[Break On This Error] if((document).getElementById('LoopPlayback').checked)
谢谢!
最佳答案
你需要重构一下; if 需要在赋值中,不像 SQL 中的 CASE 语句:
...
'data': 'playback=' + (document.getElementById('LoopPlayback').checked ? '1' : '0'),
...
这是一个内联三元语句。或者,如果你想保留结构,你可以存储 prefs 然后 .extend()
它们:
var ajaxConfig = {
'url': 'CHangePlayback.php',
'type': 'GET',
'data': 'playback=0',
'success': function(result){
$('#status').html(result);
}
};
if (document.getElementById('LoopPlayback').checked){
ajaxConfig = $.extend(ajaxConfig,{ 'data': 'playback=1' });
}
$.ajax(ajaxConfig);
当然,更简单的方法是制作一个data
变量并将其放在配置中之后:
var data = 'playback=0';
if (document.getElementById('LoopPlayback')){
data = 'playback=1';
}
$.ajax({
...
'data': data,
...
});
关于Javascript 复选框函数 : "missing : after property id",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409435/