我不知道该问题是否与全日历有关,可能不是,但不是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');
答案 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()
将修改当前字段值,而不是其原始值。