2012-06-14 51 views
0

我试过了一切,但仍然失败!这段代码有什么问题?!?!我想获得序列化的排序,这很简单,但我已经看过,并发现片段..应用与我的代码,它仍然无法正常工作。这根本没有意义。我确实看过可能的错误(是的,有jQuery doc指定的set_number)...但仍然没有任何效果。序列化排序不起作用

<html> 
<body> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.5.js'> 
    </script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"> 
    </script> 
    <script> 

$(function() { 
    $("#sortable").sortable(); 
    $("#sortable").disableSelection();  
}); 

    $("form").submit(function(){   
    $('#thedata').val($("#sortable").sortable("serialize")); 
    return false;   
    }); 

    </script> 
    <h1> 
     Filters For Tables 
    </h1> 
    <h2> 
     Filters for Assets 
    </h2> 
    <form action="validate.php" method="post"> 
     <input type='text' name='thedata' id='thedata' /> 
     <ul id="sortable"> 
      <li id="foo_0">ID</li> 
      <li id="foo_1">TIME LOG</li> 
      <li id="foo_2">DEVICE TYPE</li> 
      <li id="foo_3">CHASSIS TYPE</li> 
      <li id="foo_4">PARENT ID</li> 
      <li id="foo_5">PARENT</li>    
     </ul> 
     <input type="submit" name="submit" id="submit" value="Update" /> 
    </form> 
</body> 

</html> 
+0

什么?!?!无解决方案? – netrox

+0

那么究竟是不是工作 - http://jsfiddle.net/LD5dZ/? –

+0

我也做了一个小提琴,为我工作。你确定问题是这个代码吗? – Fewfre

回答

3

表单元素不存在。 DOM准备就绪时必须绑定事件。只需移动它:

$("form").submit(function(){   
    $('#thedata').val($("#sortable").sortable("serialize")); 
    return false;   
}); 

对此函数:$(function(){}); 它适用于JSFiddle,因为当我装入DOM时调用JavaScript。

+0

这解决了我的问题!谢谢,Drahomir! :) – netrox

+0

刚刚发现了同样的想法,好工作@Drahomir。我想也许它适用于js小提琴,因为它默认会自动将所有内容都包装在文档ready()中。 –

0

似乎对我来说很好,当从HTML中剥离。

<!doctype html> 

或例如: http://jsfiddle.net/Zfu6N/

我没有使用一个有效的doctype e.g注意到

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

这可能是浏览器进入怪癖模式。

这可能只是因为你在你的例子中错过了它,但以防万一。

+0

不,不起作用。 :/ – netrox