Javascript 复选框函数 : "missing : after property id"

标签 javascript jquery ajax

我是 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/

相关文章:

ajax - 加入并发/相同的 HTTP GET 请求?

javascript - spring mvc 环境中的 jQuery ajax 调用数据参数问题

javascript - 困惑——我的 XMLHttpRequest 的 readyState 为 0,状态为 200

JavaScript onClick函数触发ActionsScript3事件

javascript - 经过验证的JSON抛出SyntaxError : Property must be a string literal

jquery - 如何将 JQuery DataTables "input"插件与 DataTables 1.10 一起使用

javascript - 如何使 document.location.href 表现得像一个简单的链接?

javascript - 如何访问 axios 加载的对象属性?

javascript - 滚动到 View 中时重新启动 Gif

jquery - 在 PHP 条件下禁用整个表单的最佳方法?