Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
jquery对话框字段仅在用户输入之前起作用_Jquery_Jquery Ui_Dialog - Fatal编程技术网

jquery对话框字段仅在用户输入之前起作用

jquery对话框字段仅在用户输入之前起作用,jquery,jquery-ui,dialog,Jquery,Jquery Ui,Dialog,在我开始描述我的问题之前:感谢您花时间阅读本文 我正在尝试编写一个基本的活动日历。用户应该能够创建事件并更新事件参数。如果单击现有事件,将打开一个jquery对话框,显示每个事件参数的可编辑文本字段。到目前为止,这一切都很好。唯一的问题是,只要手动更改并保存任何参数,文本字段就不接受对其值的任何进一步修改。在对话框打开之前,通常应将这些设置为单击事件的参数值 我已经试着通过stackoverflows-serch函数和google找到问题的答案。我尝试了很多我发现的方法,比如使用dialog c

在我开始描述我的问题之前:感谢您花时间阅读本文

我正在尝试编写一个基本的活动日历。用户应该能够创建事件并更新事件参数。如果单击现有事件,将打开一个jquery对话框,显示每个事件参数的可编辑文本字段。到目前为止,这一切都很好。唯一的问题是,只要手动更改并保存任何参数,文本字段就不接受对其值的任何进一步修改。在对话框打开之前,通常应将这些设置为单击事件的参数值

我已经试着通过stackoverflows-serch函数和google找到问题的答案。我尝试了很多我发现的方法,比如使用dialog create参数并将其设置为一个函数,该函数将为输入字段分配事件参数,或者在每次对话框打开之前创建表单代码dynamicaly。似乎没有什么帮助

我想我遗漏了我问题的一个要点

我正在使用“fullcalendar”JQuery插件和jQueryUI对话框表单模板的代码片段。 (完整日历:)
(jquery对话框窗体:)

非常感谢您花时间和精力阅读本文

以下是我的部分代码:

    ---Initialisation of fullcalendar----

eventClick: function (event, element) {

     var id = $( "#id" ),
     title = $( "#title" ),
     allFields = $( [] ).add( id ).add( title );

    $( "#dialog-form" ).dialog
        ({
        autoOpen: false,
        height: 320,
        width: 350,
        modal: true,
        close: function() 
                {
                allFields.attr( "value", "" );
                },
        buttons: {
        "Update Event": function() 
                    {
                        var bValid = true;
                    // To-Do: Entry Check Logic
                        if ( bValid ) 
                            {
                                event.title=$("#title").val();

                                $('#calendar').fullCalendar('updateEvent', event);
                                $( this ).dialog( "close" );

                            }
                    },
        Cancel: function() 
                    {
                        $(this).dialog( "close" );
                    }
                }       
            });     

        $("#id").attr("value",event._id);
        $("#title").attr("value",event.title);
        $( "#dialog-form" ).dialog( "open" );

        }
        });
    });

----Some Css----

</head>
<body >
<div id='calendar'></div>

<div class="lightness" id="dialog-form" title="Parameter">
<p class="validateTips">All form fields are required.</p>
<form>
<fieldset id="beforeSubmit">
<label for="id">Id</label>
<input type="text" name="id" id="id"  />
<label for="title">Title</label>
<input type="text" name="title" id="title" value="" />

</fieldset>
</form>
</div>
</body>
</html> 
——完整日历的初始化----
事件单击:函数(事件、元素){
变量id=$(“#id”),
标题=$(“#标题”),
所有字段=$([])。添加(id)。添加(标题);
$(“#对话框窗体”).dialog
({
自动打开:错误,
身高:320,
宽度:350,
莫代尔:是的,
关闭:函数()
{
allFields.attr(“值”,“值”);
},
按钮:{
“更新事件”:函数()
{
var bValid=真;
//要做的事情:条目检查逻辑
if(bValid)
{
event.title=$(“#title”).val();
$(“#日历”).fullCalendar('updateEvent',event);
$(此).dialog(“关闭”);
}
},
取消:函数()
{
$(此).dialog(“关闭”);
}
}       
});     
$(“id”).attr(“值”,事件id);
$(“#title”).attr(“value”,event.title);
$(“#对话框窗体”)。对话框(“打开”);
}
});
});
----一些Css----

所有表单字段都是必需的

身份证件 标题
经过一段时间的痛苦和“把头撞墙”,我找到了解决办法。 似乎

.attr(“vaule”,某物)

这不是我们选择的方法。在任何类型的用户输入之前定义值都可以,但之后无法更新值。 我应该用的是:

瓦尔先生(某物)

现在,关于为什么此方法可能在用户输入后写入,而.attr可能不会: 我完全不知道

感谢所有读过我的问题的人! 我希望在座的人能够解释为什么会发生这种情况