通过ajax在bootstrap模式中加载的表单不起作用

时间:2015-03-18 19:57:26

标签: jquery twitter-bootstrap modal-dialog jquery-validate bootstrap-modal

我有一个模态,其内容(表单的输入)是使用ajax调用从第二个html文档加载的。我需要验证表单,为此我尝试实现jquery验证。如果表单不是ajax加载,它可以正常工作(请参阅我的jsbin,插件工作,它也在进行ajax调用以验证名称),但是因为我需要它(在模态中),它没有。控制台显示:无法读取未定义的“设置”属性。

再次感谢您的帮助。

这是我的jsbin:http://jsbin.com/nodavibexa/1/edit?html,js,console,output

以下是我的脚本(精简版):

$(document).ready(function () {
    $("#customerAddressForm").validate({
        rules: {
            field1: {
                required: true
            }
        },
        messages: {
            field1: "Please specify your name"

        }
    });

    $('#btn').click(function () {
        var isAdd = $('#customerAddressForm').prop("action").split("/").pop();
        console.log(isAdd);
        if (isAdd == "shipping") {
            console.log("A");
            $('#field1').rules("add", {

                required: true,
                remote: {

                    url: "https://localhost:8443/mysite/myaccount/addresses/isExistingAddressName",
                    contentType: "application/json; charset=utf-8",
                    data: {
                        customerId: function () {
                            return $("#customerId").val();
                        }


                    }
                }
            });
        } else {
            console.log("B");
            $('#field1').rules("add", {
                required: true,
                remote: {
                    url: "https://localhost:8443/mysite/myaccount/addresses/isExistingAddressName",
                    contentType: "application/json; charset=utf-8",
                    data: {
                        customerAddressId: "-10"
                    }
                }
            });
        }
        $("#customerAddressForm").valid();
    });
});

1 个答案:

答案 0 :(得分:0)

使用$(document).ready()时可能无效,因为此事件被触发时元素不存在?

尝试使用

$(document).on("ajaxComplete", function(){ # rest of your code # });