jQuery动态输入字段不起作用

时间:2014-04-08 12:13:28

标签: javascript jquery html

我在这里关注了一个教程(我稍微修改了一下):code

在JSFiddle中,代码工作正常但是,在真实页面上,代码在下面,不起作用,我一直在努力,但我找不到答案:-(所以任何帮助都表示赞赏。

<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="javascript/jquery-2.1.0.min.js"></script>
    <script type="text/javascript">

        $('.multi-field-wrapper').each(function() {
            var $wrapper = $('.multi-fields', this);
            $(".add-field", $(this)).click(function(e) {
                $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
            });
            $('.multi-field .remove-field', $wrapper).click(function() {
                if ($('.multi-field', $wrapper).length > 1)
                    $(this).parent('.multi-field').remove();
            });
        });

    </script>
    <title>AQUATAP - Gestor de Información - Añadir Pedido</title>
</head>

<body>

    <form role="form" action="add_order.php" method="POST">
        Cliente:
        <input type="text" name="cliente" id="buscar">
        <br>
        <hr />
        Fecha de salida:
        <br>
        <input type="radio" name="salida_pronosticada" value="male">
        En el día
        <br>
        <input type="radio" name="salida_pronosticada" value="male">
        2 días
        <br>
        <input type="radio" name="salida_pronosticada" value="female">
        3 días
        <br>
        <input type="radio" name="salida_pronosticada" value="female">
        5 días
        <br>
        <input type="radio" name="salida_pronosticada" value="female">
        1 semana
        <br>
        <input type="radio" name="salida_pronosticada" value="female">
        Otro
        <input type="text" name="salida_pronosticada_otro">
        días
        <br>
        <hr />
        <label>Stuff y cantidad</label>
        <div class="multi-field-wrapper">
            <div class="multi-fields">
                <div class="multi-field">
                    <input type="text" class="buscar_prod" name="input_referencia[]">
                    <input type="text" name="input_cantidad[]">
                    <button type="button" class="remove-field">
                        X
                    </button>
                </div>
            </div>
            <button type="button" class="add-field">
                Add field
            </button>
            <input type="submit" name="guardar" value="Guardar" />
        </div>
    </form>

</body>

那么......任何帮助都表示赞赏。 我一直在玩,我想我可能会遗漏一些东西......比如剧本没有开始。

4 个答案:

答案 0 :(得分:2)

document.ready

中添加您的代码
$(function(){
$('.multi-field-wrapper').each(function() {
        var $wrapper = $('.multi-fields', this);
        $(".add-field", $(this)).click(function(e) {
            $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
        });
        $('.multi-field .remove-field', $wrapper).click(function() {
            if ($('.multi-field', $wrapper).length > 1)
                $(this).parent('.multi-field').remove();
        });
    });
});

答案 1 :(得分:1)

将代码包裹在document-ready处理程序

$(document).ready(function() {

});

enter image description here

答案 2 :(得分:0)

正如您所说,您的代码正在您向我们展示的页面上工作。

试试这个:

http://api.jquery.com/ready/


$( document ).ready(function() {
$('.multi-field-wrapper').each(function() {
            var $wrapper = $('.multi-fields', this);
            $(".add-field", $(this)).click(function(e) {
                $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
            });
            $('.multi-field .remove-field', $wrapper).click(function() {
                if ($('.multi-field', $wrapper).length > 1)
                    $(this).parent('.multi-field').remove();
            });
        });
});

答案 3 :(得分:0)

<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="javascript/jquery-2.1.0.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
    $('.multi-field-wrapper').each(function() {
        var $wrapper = $('.multi-fields', this);
        $(".add-field", $(this)).click(function(e) {
            $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
        });
        $('.multi-field .remove-field', $wrapper).click(function() {
            if ($('.multi-field', $wrapper).length > 1)
                $(this).parent('.multi-field').remove();
        });
    });
});
</script>
<title>AQUATAP - Gestor de Información - Añadir Pedido</title>
</head>

您需要使用文档就绪功能来解决问题。

“在文档”准备好“之前,页面无法安全操作.jQuery会为您检测这种准备状态”。

取自http://learn.jquery.com/using-jquery-core/document-ready/