预先填写表格

时间:2014-12-11 11:42:49

标签: jquery html forms

我正在尝试使用JQuery在新窗口中填充表单,但我似乎无法使其工作,它当前打开所需的新窗口。但任何填充表单的尝试都会失败。

$( "body" ).delegate( ".propose", "click",function() {  
    var url = './prop_form.php';    
    var win = window.open(url, 'Marketing Docs', 'directories=no,menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');

    $(win).find('input[name=vrm]').val('x');

    if (win.focus) { win.focus(); } 
});

脚本应填充名为vrm的文本输入。

1 个答案:

答案 0 :(得分:0)

更新(再次),我在使用加载事件后终于开始工作了:

      $("body").delegate(".propose", "click", function () {
            var url = './prop_form.php';

            var win = window.open(url, 'Marketing Docs', 'menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');

            $(win).load( function() {  

                $(win.document).find('input[name="vrm"]').val('x');

                $(win.document).find('input[name="vrm"]').focus();

            });
      });

替代setTimeout方法

     $("body").delegate(".propose", "click", function () {
        var url = './prop_form.php';

        var win = window.open(url, 'Marketing Docs', 'menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');

        setTimeout(function() { 
             $(win.document).find('input[name="vrm"]').val('x');, 2000); });
      });

我使用Chrome测试了代码,发现其中一个window.open参数属性已过时:directories=yes|no|1|0。删除该参数后,window.open方法开始工作。