JQuery кнопку во всплывающем

Я использовал файл index.js, чтобы написать код для создания и открыть всплывающее окно при нажатии кнопки. Частичное представление вызывается как всплывающее окно.

$("#createForm").dialog({
    autoOpen: false,
    modal: true,
    width: 550,
    height: 420,
    open: function(event, ui) {
        $(".ui-dialog-titlebar-close").hide();
    }
});

$(".buttonCreate").button().click(function() {
    $.ajax({
        // Call CreatePartialView action method
        url: "/PurchaseInvoice/AddItemPartial",
        type: 'Get',
        success: function(data) {
            $("#createForm").dialog("open");
            $("#createForm").empty().append(data);
            $("#editForm").hide();
        },
        error: function() {
            alert("something seems wrong");
        }
    });
});   

кнопка во всплывающем окне используется для вызова функции из другого файла.js. эта кнопка не работает в первый раз, когда открывается всплывающее окно, но когда всплывающее окно открывается после закрытия всплывающего окна с помощью кнопки esc, оно работает правильно.

$("#PopupAdd").click(function() {
    //  On submit button click close dialog box
    $("#createForm").dialog("close");
    // Set inserted vlaues
    var Item = $("#ddlItem").val().toString();
    var Quantity = $("#Quantity").val();
    var Price = $("#Price").val();
    var hdnID = $("#hdnInvoiceID").val();
    // Call Create action method
    $.post('/PurchaseInvoice/Create', {
            "ddlItem": Item,
            "Quantity": Quantity,
            "Price": Price,
            "hdnInvoiceID": hdnID
        },
        function() {
            alert("Data Saved successfully");
            window.location.reload(true);

        });
});

Частичное представление используется в качестве всплывающего окна при нажатии кнопки. Частичное представление вызывается из контроллера и отображается во всплывающем окне.

2 ответа

Решение

Добавить событие на document.ready функция той страницы, кнопка которой не работает в первый раз, как ->

Это функция для принятия числовых значений только в текстовых полях при нажатии клавиши. Вы можете добавить любую функцию для инициализации событий страницы, тогда кнопка может работать правильно с первого раза.

$(document).ready(function () {    
            $("#Quantity").keypress(function (e) {
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            $("#errmsg").html("Digits Only").show().fadeOut("slow");
            return false;
        }
            });
});

Чтобы селектор работал с элементом, динамически добавляемым на страницу, я всегда привязываю его к документу вот так

$(document).on('click', '#PopupAdd', function(){...
Другие вопросы по тегам