对话框输入和全日历问题

时间:2018-06-22 07:33:00

标签: javascript jquery html fullcalendar

我不知道该问题是否与全日历有关,可能不是,但不是100%肯定。 我有2种隐藏形式,第一种情况是单击事件,另一种情况是选择时间创建事件。

这是两种形式(少2个按钮也是如此)。

    <div id="eventContent" title="Détail de la tache" style="display:none;">
        <form id="form_infos">
            <label for="title">Titre:</label><input type="text" name="title" id="title_input"/>
            Début: <span id="startTime"></span><br>
            Fin: <span id="endTime"></span><br><br>
            <label for="eventInfos">Description:</label><textarea rows="5" cols="30" name="eventInfos" id="eventInfos"></textarea>
            <input type="submit" value="Enregistrer" class="btn btn-success" />
            <input type="button" value="Copier" id="copier" class="btn btn-success" />
            <input type="reset" value="Supprimer" class="btn btn-danger" />
        </form>
    </div>

    <div id="eventContent_create" title="Détail de la tache" style="display:none;">
        <form id="form_infos_create">
            <label for="title_create">Titre:</label><input type="text" name="title_create" id="title_input_create"/>
            Début: <span id="startTime_create"></span><br>
            Fin: <span id="endTime_create"></span><br><br>
            <label for="eventInfos_create">Description:</label><textarea rows="5" cols="30" name="eventInfos_create" id="eventInfos_create"></textarea>
            <input type="submit" value="Enregistrer" class="btn btn-success" />
        </form>
    </div>

问题仅在于字段标题和eventInfos中打印的内容。

第1步:虽然没有通过选择创建任何事件,但是如果我单击现有事件,则会显示对话框,并且输入将被很好地填充。 然后,我想创建一个新事件,因此我选择了一个延时拍摄,对话框中的表单显示了自己,并很好地填充了空白。

因此,步骤1正常。

但是接下来是步骤2,一旦创建了事件,每次我打开一个对话框时,都是通过单击现有对话框或选择timelapse来创建一个新对话框,然后输入将一直被填充最后创建的事件。

我不明白为什么。希望您能为您提供帮助。

Js边点击事件

        eventClick: function(event, element) {
             event_save=event;
        },
        eventRender: function (event, element) {
            if(event_save!=undefined){
                event=event_save;
            }
            element.attr('href', 'javascript:void(0);');

            element.click(function() {
                console.log("open render");
                $("#title_input").attr({value :event.title});
                $("#title").html(event.title);
                $("#startTime").html(moment(event.start).format('MMM Do h:mm A'));
                $("#endTime").html(moment(event.end).format('MMM Do h:mm A'));
                $("#eventInfos").html(event.description);
                $("#eventContent").dialog('open');
            });

js端选择游戏中时光倒流

     select: function(start, end,jsEvent) {
                var eventData = {
                    title: "",
                    start: start,
                    end: end,
                    description: ""
                  };
                $("#startTime_create").html(moment(start).format('MMM Do h:mm A'));
                $("#endTime_create").html(moment(end).format('MMM Do h:mm A'));
                //$("#title_input").removeAttr("value");
                $("#title_input_create").attr({value: " "});
                $("#eventInfos_create").html(" ");
                event_save=eventData;
                console.log("create");
                $("#eventContent_create").dialog('open');
    }

我想知道这是否不是由于缺少element.attr('href', 'javascript:void(0);');而导致的,但是我真的不知道。感谢您的帮助。

编辑:这是正在发生的事情的屏幕... html很好...但是输出似乎不对应

                console.log($("#title_input_create"));
                $("#eventContent_create").dialog('open');

Screen of the issue

1 个答案:

答案 0 :(得分:0)

您应该使用.val()来更改字段的值。 更改

 $("#title_input_create").attr({value: " "});

$("#title_input_create").val("");

说明:

使用您的原始语法http://jsfiddle.net/xk1shu9q/3/观看此演示。如果单击按钮时未在框中键入内容,则它将清除该字段。但是,如果您在单击之前输入新值,则不会清除该字段。

这与DOM用于输入元素的方式有关-.attr()将更改书面HTML中的原始属性文本,但这与当前的不同该字段保存在浏览器的内存中-保留在该元素所附的单独的value字段中。更改本机DOM元素对象上的.value属性,或在jQuery对象上使用jQuery的.val()将修改当前字段值,而不是其原始值。