2

フォームをポップアップしてこのフォームに値を渡すためのダイアログウィンドウが必要です。私はこの問題に対していくつかのアプローチを試みましたが、それができませんでした。私はあちこちを検索しましたが、何も機能していないようです。

これは私の最新の試みです:

  var message="variable";

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

ダイアログ内に追加を配置すると、ポップアップが機能しなくなります(これを正しく行う方法がわからないと思います)

4

2 に答える 2

7

私は完全にダイアログ処理のためにスクリプトを使用しています(私はそれがよりクリーンだと思います):

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();
}
于 2013-03-10T12:21:54.293 に答える
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>
于 2013-03-10T01:44:06.307 に答える