jQuery on()事件没有为sweetalert2文本框触发

时间:2016-07-28 06:52:21

标签: javascript jquery sweetalert sweetalert2

我在sweetalert2中动态创建了文本框,如下所示:

swal({
    title: 'Enter Info',
    showCancelButton: true,
    html:   "<table>" +
                "<tr>" +
                    "<td>name</td>" +
                    "<td><input type='text' id='name'/></td>" +
                "</tr>"
                "<tr>" +
                    "<td>email</td>" +
                    "<td><input type='text' id='email'/></td>" +
                "</tr>"
            "</table>"
}).then(function(){
    // ajax
});

jQuery函数用于监听文本框更改事件。

$(document).ready(function () { 
    <script type="text/javascript">
        $('#name').on('change', function(e) {
            console.log($(this).val());
        });
    </script>
});

但是在更改sweetalert2中的文本框值时,不会触发事件。 jQuery已正确加载,并且可以在sweetalert2模型之外的其他文本框上运行。我还尝试在上面<script>...</script> </table>之后添加html:,但仍然没有运气。有人可以帮帮我吗?任何意见都将不胜感激。

2 个答案:

答案 0 :(得分:5)

Comment <- c("(apple (a) 100)","(orange 50)") 更改为$('#name').on('change', function(e) {

  1. 正确委派活动

答案 1 :(得分:2)

这是因为您正在使用

$('#name').on('change', function(e) {});  // this works for static dom

$(document).on('change','#name', function(e) {});  // this works for static as well as content dynamically added in dom.