Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次更新文本字段值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 每次更新文本字段值

Javascript 每次更新文本字段值,javascript,jquery,html,Javascript,Jquery,Html,您好,我使用的是jquery对话框,其中我需要一些包含所需数据的文本字段 单击包含4个输入文本字段的按钮时会打开此对话框,这些输入必须根据数据自动完成 单击的按钮的名称 在这里,我创建了一个有一个文本字段的代码,它的值是从每次单击时更新的文本值中获取的。我也用过 控制台来检查值是否正在更新 我的代码是 valueofText = row //changes every time var $dialog = $('<div></div>'

您好,我使用的是jquery对话框,其中我需要一些包含所需数据的文本字段

单击包含4个输入文本字段的按钮时会打开此对话框,这些输入必须根据数据自动完成 单击的按钮的名称

在这里,我创建了一个有一个文本字段的代码,它的值是从每次单击时更新的文本值中获取的。我也用过 控制台来检查值是否正在更新

我的代码是

        valueofText  = row //changes every time

        var $dialog = $('<div></div>')
          .html('<form>Enter email address <input id=emailAddresss type="text"></form>')
           .dialog({
               autoOpen: false,
               modal: true,
               height: 300,
               width: 500,
               draggable: false,
               title: "Some title",

               open: function (event, ui) {
                 //  $("#emailAddresss").val(valueofText);
               console.log("id is  "+valueofText);
                 document.getElementById('emailAddresss').value = valueofText;
               $(this).css('overflow', 'hidden');
               }
              });
             $("#emailAddresss").val('');
             $dialog.dialog('open');
valueofText=row//每次都会更改
变量$dialog=$('')
.html('输入电子邮件地址')
.对话({
自动打开:错误,
莫代尔:是的,
身高:300,
宽度:500,
可拖动:错误,
标题:“一些标题”,
打开:功能(事件、用户界面){
//$(“#emailAddresss”).val(文本的值);
log(“id为”+文本的值);
document.getElementById('emailAddresss')。value=文本的值;
$(this.css('overflow','hidden');
}
});
$(“#电子邮件地址”).val(“”);
$dialog.dialog('open');

我的问题是它只更新一次,然后如果我们再次打开模式窗口,它不会显示任何值。我在这里做什么错了?

我认为您在每次单击时都会创建对话框,而不会删除旧的对话框。这意味着第一个板条箱对话框的值将被更改(因为
emailAddresss
是一个id),该对话框已关闭,但您正在打开一个新创建的对话框

如果我是对的,你有两个选择:

  • 在创建新对话框之前删除旧对话框。 创建一个id为
    var$dialog=$('')的对话框,在创建一个新对话框之前将其删除
    $('#dialog')。删除()

  • 在页面加载时只创建一次对话框(最好将其设置为html),然后单击“仅更改
    电子邮件地址”
    输入并打开对话框


  • 您应该获得当前对话框的
    emailAddresss
    子级,如:

    $(this).find('#emailAddresss').val(valueofText);
    
    请参见以下示例,其中我创建了4个对话框:

    var html='输入电子邮件地址';
    函数openDialog(valueofText){
    变量$dialog=$('')
    .html(html)
    .对话({
    自动打开:错误,
    莫代尔:是的,
    身高:200,
    宽度:250,
    可拖动:错误,
    标题:“一些标题”,
    打开:功能(事件、用户界面){
    log(“id为”+文本的值);
    $(此)。查找(“#电子邮件地址”)
    .val(文本的值);
    $(this.css('overflow','hidden');
    }
    });
    $dialog.dialog('open');
    }
    
    对于(valueofText=1;valueofText我认为您在每次单击时都会创建对话框,而不会删除旧对话框。这意味着第一个已关闭的板条箱对话框(因为emailAddresss是一个id)的值将被更改,但您正在打开一个新创建的对话框,因此我如何解决此问题?发布了一个可能的解决方案。