【问题标题】:jquery dialog field only works before user Inputjquery 对话框字段仅在用户输入之前有效
【发布时间】:2013-09-04 15:06:44
【问题描述】:

在我开始描述我的问题之前:感谢您抽出宝贵时间阅读本文!

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

我已经尝试通过 stackoverflows 搜索功能和谷歌找到我的问题的答案。我尝试了很多我发现的东西,比如使用对话框创建参数并将其设置为一个函数,该函数将事件参数分配给输入字段,或者每次在对话框打开之前动态创建表单代码。似乎没有任何帮助。

我想我错过了我的问题的一个要点。

我正在使用 jquery-ui 对话框表单模板的“fullcalendar”JQuery-Plugin 和 coden-ps。 (完整日历:http://arshaw.com/fullcalendar/
(jquery 对话框形式:http://jqueryui.com/dialog/#modal-form

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

这是我的代码的一部分:

    ---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> 

【问题讨论】:

    标签: jquery jquery-ui dialog


    【解决方案1】:

    经过一段时间的痛苦和“撞墙”后,我找到了解决方案。 看来

    .attr("值",某事)

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

    .val(某事)

    现在关于为什么这个方法可以在用户输入之后写入,而 .attr 可能不会: 我根本没有主意。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多