Javascript复选框函数:;缺少:在属性id之后"

Javascript Checkbox function: "missing : after property id"

本文关键字:id 之后 quot 属性 缺少 复选框 函数 Javascript      更新时间:2023-09-26

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

谢谢!

您需要进行一些refacor;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,
  ...
});

您可以将其更改为这样,这样它就可以执行'if'内联:

function playback(){
  $.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: "playback=" + (document.getElementById('LoopPlayback').checked ? "1" : "0"),    
    success:function(result){
      $("#Status").html(result);
    }
  });
}

这应该有效:

function playback(){
  $.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: $('LoopPlayback').val() ? "playback=1" : "playback=0",
    success:function(result){
      $("#Status").html(result);
    }
  });
}

这是对象,不能在字段之间写入代码:

{
    url:...,
    type:...,
    data:...,
    success:...
 }

不能将if语句放在对象文字的中间。将其从ajax选项中移出文字:

function playback(){
    var data;
    if(document.getElementById('LoopPlayback').checked) {
        data = "playback=1";
    } else {
        data = "playback=0";
    }
    $.ajax({
        url:"ChangePlayback.php",
        type: "GET",
        data: data,
        success:function(result){
            $("#Status").html(result);
        }
    });
}

或使用jquery执行

 if ($('#LoopPlayback').is(':checked'))
  //your stuff

使用更多jQuery的强大功能:

$.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: "playback=" + ($("#LoopPlayback").is(":checked") ? "1" : "0"),
    success:function(result){
        $("#Status").html(result);
    }
});