我是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)
谢谢!
答案 0 :(得分:3)
你需要重新调整一下; 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,
...
});
答案 1 :(得分:2)
您可以将其更改为此,以便'if'内联:
function playback(){
$.ajax({
url:"ChangePlayback.php",
type: "GET",
data: "playback=" + (document.getElementById('LoopPlayback').checked ? "1" : "0"),
success:function(result){
$("#Status").html(result);
}
});
}
答案 2 :(得分:2)
这应该有效:
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:...
}
答案 3 :(得分:1)
您不能在对象文字的中间放置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);
}
});
}
答案 4 :(得分:0)
或使用jquery来做到这一点
if ($('#LoopPlayback').is(':checked'))
//your stuff
答案 5 :(得分:0)
使用jQuery的更多功能更加清晰:
$.ajax({
url:"ChangePlayback.php",
type: "GET",
data: "playback=" + ($("#LoopPlayback").is(":checked") ? "1" : "0"),
success:function(result){
$("#Status").html(result);
}
});