jQuery val()返回undefined,prepend()不会追加jQuery样式,也不能更改文本输入大小

时间:2014-01-22 14:33:32

标签: jquery html

我有很多问题,也许是因为同样的问题造成的。

这是我的代码:

        <h2>Aufgaben:</h2>
        <div data-role="fieldcontain">
        <ul id="exercise-list" data-role="listview" data-inset="true">
            <li id="addExercise">Aufgabenname: <input type="text" name="aufgabenname" id="aufgabenname" size="20" maxlength="20"></input> Maximalpunktzahl: <input type="text" name="maxPunkte" id="maxPunkte" size="2" maxlength="2"></input><div style="float:right;"><button id="add" data-icon="plus" data-iconpos="notext"></button></div></li>
        </ul>
        </div>

        <script>
            $("#add").on("click", function() {
                var aufgabenname = $("aufgabenname").val();
                var maxPunkte = $("maxPunkte").val();
                $("#addExercise").prepend("<li>Aufgabe: "+aufgabenname+", Maximalpunktzahl: "+maxPunkte+" <div style=\"float:right;\"><button class=\"delete\" data-icon=\"delete\" data-iconpos=\"notext\"></button></div></li>");
            });
        </script>

我可以创建新的<li>,但aufgabennamemaxPunkte未定义。此外,<li>元素不会以jQuery样式显示,特别是按钮不是预期的。无论我在size属性中添加什么,文本输入大小都是全长的。

3 个答案:

答案 0 :(得分:1)

您需要使用#定位id。改变自:

var aufgabenname = $("aufgabenname").val();
var maxPunkte = $("maxPunkte").val();

为:

var aufgabenname = $("#aufgabenname").val();
var maxPunkte = $("#maxPunkte").val();

<强> Fiddle Demo

答案 1 :(得分:0)

5月问题:您需要在JQuery ready event fired之后调用jquery功能。 size和maxlength它按预期工作.maxlength char用户可以键入的数量和Size确定可见宽度,以字符为单位。

       <h2>Aufgaben:</h2>
        <div data-role="fieldcontain">
        <ul id="exercise-list" data-role="listview" data-inset="true">
            <li id="addExercise">Aufgabenname: <input type="text" name="aufgabenname" id="aufgabenname" size="20" maxlength="20"></input> Maximalpunktzahl: <input type="text" name="maxPunkte" id="maxPunkte" size="2" maxlength="2"></input><div style="float:right;"><button id="add" data-icon="plus" data-iconpos="notext"></button></div></li>
        </ul>
        </div>

        <script>
      $(document).ready(function() {
            $("#add").on("click", function() {
                var aufgabenname = $("#aufgabenname").val();
                var maxPunkte = $("#maxPunkte").val();
                $("#addExercise").prepend("<li>Aufgabe: "+aufgabenname+", Maximalpunktzahl: "+maxPunkte+" <div style=\"float:right;\"><button class=\"delete\" data-icon=\"delete\" data-iconpos=\"notext\"></button></div></li>");
            });
});

        </script>

Fiddle Demo

答案 2 :(得分:0)

 var maxPunkte = $(#"maxPunkte").val();

有一个问题;

var maxPunkte = $("#maxPunkte").val();