0

我已经尝试了一切,但仍然失败!这段代码有什么问题?!?!我想获得可序列化的可排序,就这么简单,但我查看了 SO 并找到了片段.. 应用了我的代码,但它仍然不起作用。这根本没有意义。我确实查看了可能的错误(是的,有 jQuery 文档指定的 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>
4

2 回答 2

3

表单元素不存在。当 DOM 准备好时,您必须绑定事件。移动这个:

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

到这个函数: $(function() {}); 它适用于 JSFiddle,因为我认为加载 DOM 时会调用 JavaScript。

于 2012-06-19T19:41:04.853 回答
0

当从 html 中剥离时,对我来说似乎很好。 http://jsfiddle.net/Zfu6N/

我注意到您没有使用有效的文档类型,例如:

<!doctype html>

或者例如

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

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

这可能只是因为您在示例中缺少它,但以防万一。

于 2012-06-19T15:46:27.310 回答