2013-03-10 107 views
1

我需要一个对话窗口来弹出一个表单并将值传递给这个表单。我曾尝试过几种解决这个问题的方法,但我一直无法这样做。我搜遍了全部,似乎没有任何工作。传递值到jquery对话框形式

这是我最新的尝试:

var message="variable"; 

.click(function() { 
$("#dialog-form").dialog("open"); 
$('<input>').attr({ 
    type: 'text', 
    id: 'hidden-input", 
    value: message, 
    name: 'bar' 
}).appendTo("#dialog-form"); 

如果我把追加弹出停止工作的对话框中(我想我不知道如何做到这一点正确)

+0

此外“隐藏的输入”开头用单引号和一个带双一端。 – Merec 2013-03-10 01:41:01

回答

5

认为你正在寻找这样的事情:

<script> 
$(function(){ 
    var message = "variable"; 

    $("#showDialog").click(function() { 
     $("#hidden-input").val(message); 

     $("#dialogForm").dialog("open"); 
    }); 
}); 
</script> 

<button id="showDialog">Show Dialog</button> 

<div id="dialogForm"> 
<input type="text" id="hidden-input" name="bar"/> 
</div> 
6

我使用脚本完全是为了对话处理(我认为这是更清洁):

http://jsfiddle.net/fE6q2/

HTML:

Default firstname:<br> 
<input type='text' id="default_firstname"/> 
<br><br> 
<button onclick='on_create_form_clicked()'>create form</button> 

的javascript:

function on_create_form_clicked() 
{ 
    var html = 
     "<div>" + 
      "Firstname:<br>" + 
      "<input type='text' class='firstname'/>" + 
      "<br/><br/>" + 
      "Lastname:<br>" + 
      "<input type='text' class='lastname'/>" + 
      "<br/><br/>" + 
      "<button class='ok'>ok</button>" +  
     "</div>"; 

    var div = $(html); 

    var default_firstname = $('#default_firstname').val(); 
    div.find('.firstname').val(default_firstname);   

    div.find('.ok').click(function() 
    { 
     div.dialog('close'); 

     var firstname = div.find('.firstname').val(); 
     var lastname = div.find('.lastname').val(); 

     alert("firstname was " + firstname 
      + " and lastname was " + lastname);   
    }); 

    div.dialog(
    { 
     title:"Enter firstname and lastname", 
     close: destroy_this_dialog 
    }); 
} 

function destroy_this_dialog(event, ui) 
{ 
    $(this).dialog("destroy"); 
    $(this).remove(); 
} 
+0

这两个解决方案都像一个魅力。我曾尝试加尔文的方法,但我一直在做错事,因为它以前没有工作。我需要调用一个php脚本来将数据输入到db中,因此我需要将一个ID传递给表单。非常感谢! – user2018553 2013-03-11 12:05:55

+0

不错!不要忘记标记Calvins答案作为解决方案。 – 2013-03-11 12:36:31

+0

完成!再次感谢! – user2018553 2013-03-11 22:28:30