1

我一直在尝试在 jquery 对话框中调用 javascript 函数,我已经成功了。当我通过将数据从列表框传递到调用数据库的 php 页面来在对话框中创建动态表单时,就会出现复杂情况。我首先尝试在选择第一个下拉列表中的值时禁用第二个下拉列表。其次,我想验证一个文本框以查看用户名是否存在。

我创建了一个 JSbin http://jsbin.com/etuhur/4/edit但我不确定如何复制 PHP 部分。当前的 JSbin 正在针对第一个下拉列表禁用第二个下拉列表。当表单由我传递到对话框的 php 页面创建时,我无法复制此功能。

有没有人有任何提示,指示或示例?过去两周我一直试图让它工作,但无济于事:(

编辑:我认为这与 DOM 无法识别由另一个页面创建的 PHP 表单数据有关,有人知道我将如何将它注册到 DOM 吗?

4

3 回答 3

1

在选择下拉列表中,您要添加 onclick 调用。然后,您想让 javascript 中的所有内容成为您从 onclick 调用的函数。更新的 JSbin 的答案在这里:http: //jsbin.com/etuhur/13/edit

于 2013-04-10T19:06:14.183 回答
0

委托您的change活动on

  $(document).on('change','select',function(){
   ....
  });
于 2013-04-05T12:57:56.800 回答
0

您可以在对话框窗口打开后尝试加载表单功能吗

编辑 我已经放置了 $(this).dialog('close'); 以上返回假

$( "#dialogbox" ).dialog({

        autoOpen: false,
        modal: true,
        width: 'auto',
        show: {
            effect: "blind",
            duration: 1000
        },
        hide: {
            effect: "explode",
            duration: 1000
        },

        buttons: {
            //This function handles passing in the form data generated by getdialogbox.php 
            'Submit' : function(){
                $.ajax({
                    type: "POST",
                    url: "include/insertToDB.php",
                    data: $("#htmlform").serialize(),

                    success: function(){
                        $("#htmlform").submit();
                    }
                });
                $(this).dialog('close');
                return false;


            }
        },
        open: function( event, ui ) {    
            var $inputs = $('select.titans');
            var $controller = $('select.controller');
            $('select').change(function(){
                if($controller.val() !== ''){
                    $inputs.prop('disabled', $(this).val() !== '');
                    $inputs.val('');
               }else            {
                    $inputs.prop('disabled',false); 
               }
           });
        }

    });
于 2013-04-05T13:50:59.623 回答