1

私は成功したjqueryダイアログボックス内でjavascript関数を呼び出そうとしています。リストボックスからデータベースを呼び出す php ページにデータを渡すことによって、ダイアログ ボックス内に動的フォームを作成すると、複雑になります。最初のドロップダウンの値が選択されているときに、最初に2番目のドロップダウンを無効にしようとしています。次に、テキストボックスを検証して、ユーザー名が存在するかどうかを確認したいと思います。

JSbin http://jsbin.com/etuhur/4/editを作成しましたが、PHP 部分を複製する方法がわかりません。現在の JSbin は、2 番目のドロップダウンを無効にする最初のドロップダウンに関して機能しています。ダイアログ ボックスに渡す php ページによってフォームが作成されている場合、この機能を複製できません。

誰にもヒント、指針、または例がありますか? 過去2週間、これを機能させようとしてきましたが、役に立ちませんでした:(

編集:別のページで作成されたPHPフォームデータをDOMが認識しないことに関係があると思いますが、DOMに登録する方法を知っている人はいますか?

4

3 に答える 3

0

ダイアログウィンドウが開いた後にフォーム機能をロードしてみてください

編集 $(this).dialog('close'); を配置しました。上記はfalseを返します

$( "#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 に答える
0

changeイベントを委任するon

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