相关疑难解决方法(0)

如果我在名称中带方括号的输入上使用jQuery serialize(),为什么会出现这个分号?

我有以下HTML:

<input type="checkbox" id="options_1" value="options_1" name="options[]">  
<input type="checkbox" id="options_2" value="options_2" name="options[]">  
<input type="checkbox" id="options_3" value="options_3" name="options[]">  
Run Code Online (Sandbox Code Playgroud)

我检查前两个选项并通过jQuery中的ajax将其发送到服务器:

$.ajax({
    type: "POST",
    url: "myfile.php",
    data: {
        'options':$('input[name="options[]"]').serialize()
    },
    dataType: 'json',
    beforeSend: function(){
           //do some stuff
    },
    success: function(msg){
        //do some stuff
    }
});
Run Code Online (Sandbox Code Playgroud)

Firebug向我显示已发布的数据:

期权 期权%5B%5D = options_1&options%5B%5D = options_2
到目前为止,非常好.

在myfile.php中我得到了如下的POST变量:

$options = $_POST['options'];
Run Code Online (Sandbox Code Playgroud)

现在,当我回显$ options时,我得到了这个:

"options[]=options_1&options;[]=options_2"
Run Code Online (Sandbox Code Playgroud)

第二对括号前面的分号是从哪里来的?这真让我抓狂.

我已经在POST数据上使用了utf8_decode以及urldecoderawurldecode.没有什么变化.我还逃过了ajax调用中的方括号,如下所示:

data: {
    'options':$('input[name="options\\[\\]"]').serialize()
},
Run Code Online (Sandbox Code Playgroud)

这也没有帮助.任何人的想法?

php ajax jquery serialization brackets

8
推荐指数
1
解决办法
1188
查看次数

如何在onclick上打开JQuery UI弹出窗口

我有简单的html页面:

<html>
<head>
<title></title>
</head>
<body>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/redmond/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>


    <script type="text/javascript">
        $(document).ready(function () {
            $("#OpenDialog").click(function () {
                $("#dialog").dialog({modal: true, height: 590, width: 1005 });
            });
        });
    </script>
    <a id="#OpenDialog" href="#">Click here to open dialog</a>
    <div id="dialog" title="Dialog Title">
        <p>test</p>
    </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我需要隐藏弹出内容,当点击链接时打开一个对话框.

我的代码中出了什么问题?

谢谢!

jquery jquery-ui popup

8
推荐指数
2
解决办法
7万
查看次数

以编程方式调用onclick属性

<a>在页面上有一堆看起来像的标签

 <a href="#" id="001" onclick="fnaaa();" >...</a>
  ...
 <a href="#" id="002" onclick="fnaba();" >...</a>
  ...
 <a href="#" id="003" onclick="fncda();" >...</a>


 //sometimes maybe like this
 <a href="#" id="004" onclick="fnagg(); return false;" >...</a>
  ...
Run Code Online (Sandbox Code Playgroud)

现在我将id作为查询字符串传递给页面,所以我原本想做类似的事情

$('a[id="' + id + '"]').click();
$('a[id="' + id + '"]').trigger("click");
Run Code Online (Sandbox Code Playgroud)

事实证明这两个都是不允许的,所以如果我有id,我怎么能调用onclick属性中写的函数?我知道我可能会这样

var funcToCall = $('a[id="' + id + '"]').attr('onclick');
Run Code Online (Sandbox Code Playgroud)

但是如何调用此funcToCall?记住funcToCall可能只是一个函数名ex."fnagg();返回false;"

html javascript jquery

8
推荐指数
2
解决办法
3万
查看次数

jQuery $("#"+ x)不起作用,但document.getElementById(x)有效

问题

我正在尝试更改元素的内部HTML值.我没有真正使用过jQuery,而且我在功能的许多方面仍然是新手.

    $('a.toggle-download').live('click', function (event) { 
        $.post("/ajax/toggle-download", { code: $(this).data("document"), prev_value: $(this).data("val") })
        .done(function(data) {
            var json = data,
            obj = JSON && JSON.parse(json) || $.parseJSON(json);
            if(obj['return'] == 1){
                //document.getElementById("p_" + obj['code']).innerHTML = 'some text';
                $("#p_" + obj['code']).html('some text');
            }
        });
        event.preventDefault();
    });
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这两行,首先是jQuery one through $("#p_" + obj['code']),它没有用,然后通过document.getElementById("p_" + obj['code'])它完美地工作.

看来我在这里遗漏了一些明显的东西,但我仍然不明白为什么jquery在这种情况下不起作用!

这个问题

为什么普通的旧javascript工作正常,当jQuery没有?

其他信息

1)jQuery本身工作,它正确加载.不存在冲突:成功发送ajax呼叫并正确接收答案,

2)收到的ID存在且唯一

3)我不是热衷于jQuery html()方法,但我遵循文档,它应该工作,因为我使用它

系统信息

使用Chrome 27.0.1453.116 m时出现此问题.我没有用其他版本或其他浏览器测试它,但我很确定这是一个jQuery问题而不是浏览器问题.另外,我在apache上使用php 5.3,但这些信息再次与问题无关.

如果我错过了一些你需要更好地理解我的问题的信息,请在评论中告诉我,我会尽快回答你的问题.另外,请原谅我的坏语法,但我不是母语为英语的人.

评论的答案

根据要求,这是ajax响应的一个例子: {"return":1,"code":"5.43.321"}

该命令console.log($("#p_" + obj['code']).length)产生"0"

javascript jquery

8
推荐指数
1
解决办法
1508
查看次数

为什么元素id不能以整数开头?

我正在学习jQuery选择器.

w3schools 教程说"不要用数字启动id属性.它可能会在某些浏览器中引起问题".我测试过,发现它确实不起作用.我想知道这个问题的技术原因是什么?

javascript jquery

8
推荐指数
1
解决办法
1848
查看次数

jQuery工具提示+ ajax内容

我正在尝试为页面上的图像实现一个简单的翻转工具提示,当您翻转图像时,您会得到一个小工具提示窗口并通过AJAX从数据库加载内容.

我可以快速一起破解这个,但我想要一个优雅的方式来做到这一点,而不使用任何内联JS.

所以我的问题是:如果我在外部.js文件中捕获翻转事件,我该如何传递数据库ID?

我正在使用jQuery,所以我会做这样的事情:

$('.item_roll').mouseover(function() {
  //show tooltip and load ajax content
}
Run Code Online (Sandbox Code Playgroud)

我的HTML将是这样的:

<img src="thumb.png" class="item_roll" />
Run Code Online (Sandbox Code Playgroud)

如果不从img标签调用函数,如何将JS调用发送到数据库ID之上?我希望这是有道理的.

谢谢.

javascript ajax jquery

7
推荐指数
1
解决办法
2895
查看次数

在HTML中表示游戏线的语义方式

以他们最着名的一系列行:

哈姆雷特:成为或不成为:这是
一个问题:是否在
心中更高尚地遭受
了无耻财富的吊索和箭头,或者
采取武器对抗麻烦的海洋,
并反对结束它们?死:
睡觉; 不再; 并且睡着了,说
我们结束了心痛和一千个
自然的震撼肉体是继承人,
"这是一个圆满的虔诚的愿望
.要死,要睡觉; 睡觉:
梦见:唉,有
揉搓; 因为在那种死亡的睡眠中,
梦想可能会来临

你会如何以语义方式标记,为a)行号(例如,1.1.1),b)字符名称保留空间,c)当然是文本?

html xml xhtml semantic-markup

7
推荐指数
1
解决办法
123
查看次数

Jquery draggable/droppable和sortable组合

我被要求创建一个正方形网格,其中每个正方形可能包含或不包含链接,这些链接应该能够围绕网格移动.

我认为draggable/droppable是可行的方式并且它工作正常,但是,现在我们希望能够让draggables交换,如果一个被丢弃在另一个之上.所以它现在看起来像是可以排序的.但是,sortable看起来更像是列表的意思,而我没有像列表那样编写它.

有没有一种简单的方法来制作我到目前为止所做的工作,或者我是否需要使用可排序的方式完全重写它?我是javascript的新手,我花了一段时间才能做到这一点,而且我不是要求代码,但我担心必须重新计算整个事情!任何意见?

这是我的代码的小提琴:http://jsfiddle.net/kvVkT/

和代码:

HTML

<div id="gridcontainer">
    <div id="-2:-2" class="droppable occupied">
        <a href="" id ="508" class="bookmark draggable white" title="white" "target="_blank">1</a>
    </div>
    <div id="-2:-1" class="droppable">2</div>
    <div style="clear:both"></div>
    <div id="-2:0" class="droppable">3</div>
    <div id="-2:1" class="droppable occupied">
        <a href="" id ="567" class="bookmark draggable white" title="white" "target="_blank">4</a>
    </div>
    <div style="clear:both"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

#gridcontainer{position:relative;padding:25px;color:#ff0004;background:#ffffff;}
.droppable{width:65px; height:65px;float:left; margin:5px;background:#000000;}
.bookmark {float:left;width:65px; height:65px;display:block;position:absolute;}
.position{float:left;width:65px; height:65px;display:block;}
.position:hover{background-image:url(../img/tilehover.png);}
.bookmark.ui-draggable-dragging {-moz-box-shadow: 0 0 5px #d9d9d9; -webkit-box-shadow: 0 0 5px #d9d9d9; box-shadow: 0 0 5px #d9d9d9;}
.draggable{ background:#888888;}
[draggable] …
Run Code Online (Sandbox Code Playgroud)

javascript jquery draggable jquery-ui-sortable jquery-ui-droppable

7
推荐指数
1
解决办法
4752
查看次数

Javascript:函数体后面的语法错误

好的,所以你知道错误,但为什么我得到它呢?当我在本地运行时,我没有任何错误,但是当我上传我的项目时,我遇到了这个恼人的语法错误.我检查了firebug错误控制台,这没有帮助,因为它把我所有的源都放在同一行,我已经通过Lint解析它似乎也没有找到问题 - 我刚刚格式化我的大括号以某种我讨厌的方式不同; 在声明的同一行,没有.

function ToServer(cmd, data) {
    var xmlObj = new XMLHttpRequest();
    xmlObj.open('POST', 'handler.php', true);
    xmlObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlObj.send(cmd + data);
    xmlObj.onreadystatechange = function() {
        if(xmlObj.readyState === 4 && xmlObj.status === 200) {
            if(cmd == 'cmd=push') {
                document.getElementById('pushResponse').innerHTML = xmlObj.responseText;
            }
            if(cmd == 'cmd=pop') {
                document.getElementById('messages').innerHTML += xmlObj.responseText;
            }
            if(cmd == 'cmd=login') {
                if(xmlObj.responseText == 'OK') {
                    self.location = 'index.php';
                }
                else {
                    document.getElementById('response').innerHTML = xmlObj.responseText;
                }
            }           
        }
    }
}

function Login() {
    // Grab username and password for …
Run Code Online (Sandbox Code Playgroud)

javascript ajax syntax-error

6
推荐指数
1
解决办法
1万
查看次数

XML属性是否有效?

我有这样的标签.在属性中,它在开头包含空格.在属性中给空间是否正确?请提出建议.

<p id=" 10">space found at the starting point of attribute.</p>
<p id="10 ">space found at the end point of attribute.</p>
Run Code Online (Sandbox Code Playgroud)

xml

6
推荐指数
1
解决办法
71
查看次数