- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 jquery 和 javascript 的菜鸟。因此,虽然我看过很多解决我的问题的 SO 帖子,但我无法将各种解决方案“组装”成适合我的东西。
我的上下文:查询结果显示在表单中。在每一行中,其中一个字段是具有现有值的日期。首次渲染时,所有字段的数据都是文本(不可编辑)。通过按钮,我“启用”字段进行编辑,并且我想对日期字段使用 jQuery datepicker。 (我有这部分工作。)
一个要求:日期以 ISO ('yyyy-mm-dd') 格式存储在数据库中。表单中显示的日期(通过 php 格式化)是“M d y”。日期选择器也应该使用“M d y”格式进行显示(似乎也有效),但以 ISO 格式“发布”修订后的日期.
我已经在下面发布了我的代码 here (jsfiddle)
<div class="container" id="myDiv">
<form method="post" action="">
<input type="hidden" id="projID" name="projID" value="fakeProjID">
<div class="row">
<!-- initially form is in "display-only mode" -->
<a class="btn btn-default btn-xs" id="make-editable" onClick = "toggle_edit(id,'fakeProjID');">Edit</a>
</div>
<!--rows dynamically generated via query
the id of the record is appended to the ids and inserted into the data-ids, data-dateval and values
these are fixed values for demo, but are dynamic values in reality -->
<div class="row">
<input type="text" name="date_pickr[]" id="date_pickr_511" class="input date_pickr disabled" data-id="511" data-dateval="2012-03-12" value="2012-03-12" disabled="true"/>
<input type="hidden" name="fmt_date[]" id="fmt_date_511" value="2012-03-12"/>
<input type="hidden" name="activityID[]" value="511"/>
//more info goes here//
</div>
<div class="row">
<input type="text" name="date_pickr[]" id="date_pickr_376" class="input date_pickr disabled" data-id="376" data-dateval="2013-05-19" value="2013-05-19" disabled="true"/>
<input type="hidden" name="fmt_date[]" id="fmt_date_376" value="2013-05-19"/>
<input type="hidden" name="activityID[]" value="376"/>
//more fields goes here//
</div>
<div class="row">
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</form>
</div>
和 JavaScript:
//datepickers
$(function() {
$.datepicker.setDefaults({
dateFormat: 'M d y',
altFormat: 'yy-mm-dd'
});
$('.date_pickr').datepicker();
$('.date_pickr').datepicker( 'option','altField','#fmt_date');
});
function toggle_edit(ID,projID) {
var working_elemID = ID;
var ItemID = projID;
//name of modal div to enable/disable
var group_id = 'myDiv';
//if elem_ID = make_editable
if (working_elemID.search('un') == -1) {
//working code to make field editable
} else {
//working code to make field uneditable
}
}
我需要帮助的部分是:a) 在编辑/可编辑之前获取在字段中显示的默认日期b) 让日期选择器打开到该字段显示的默认日期c) 让 datepicker 将新值设置为 $_post 数据中包含的字段(当前尝试使用隐藏输入字段)。
任何帮助都将不胜感激!
最佳答案
经过几个小时的迭代,我解决了自己的问题。这是我想到的:
HTML(使用 PHP 作为值)...
<div class="container">
<form method="post" action="">
<input type="hidden" id="projID" name="projID" value="<?php echo $projID; ?>">
<div class="row">
<!-- initially form is in "display-only mode" -->
<a class="btn btn-default btn-xs" id="make-editable" onClick = "toggle_edit(id,'fakeProjID');">Edit</a>
</div>
<!--rows dynamically generated via query
the id of the record is appended to the ids and inserted into the data-ids, data-dateval and values
these are fixed values for demo, but are dynamic values in reality -->
<?php
foreach($vals as $ky=>$v) {
$row = '
<div class="row">
<input type="text" name="date_pickr[]" class="input disabled" data-id="'.$vals[$ky].'" value="'.date('M d y',strtotime($dates[$ky])).'" disabled="true"/>
<input type="hidden" name="fmtd_date[]" id="fmtd_date_'.$vals[$ky].'" value="'.date('Y-m-d',strtotime($dates[$ky])).'">
<input type="hidden" name="activityID[]" value="'.$vals[$ky].'"/>
//more info goes here//
</div>';
echo $row;
}
?>
<div class="row">
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</form>
</div>
还有 JavaScript:
function toggle_edit(ID,projID) {
var working_elemID = ID;
var ItemID = projID;
//if elem_ID = make_editable
if (working_elemID.search('un') == -1) {
var selector = '#'+ group_id +' .disabled';
var fields = $(selector);
fields.removeClass('disabled');
fields.addClass('enabled');
fields.removeAttr('disabled','');
fields.addClass('date_pickr');
$('.date_pickr').datepicker({
dateFormat: 'M d y',
altFormat: 'yy-mm-dd',
firstDay: 1,
showOtherMonths: true,
selectOtherMonths: true,
showOn: 'focus',
onSelect: function() {
var id = $(this).data('id');
var currentDate = $(this).datepicker('getDate');
var altFormat=$(this).datepicker('option','altFormat');
var formatedDate = $.datepicker.formatDate(altFormat,currentDate);
$('#fmtd_date_'+id).val(formatedDate);
}
});
} else {
//if elem_ID == make_uneditable
var selector = '#'+ group_id +' .enabled';
var fields = $(selector);
fields.removeClass('enabled');
fields.addClass('disabled');
fields.disabled = 'true';
}
}
以下是这三个问题的逐一解释。当我将日期选择器函数插入“切换编辑”函数中时,关键的突破出现了。
(a) 默认日期(即数据库值)显示为 从数据库分配日期值(使用 php Date() 函数与日期选择器的格式完全相同 dateFormat 值...在本例中为 'M d y') 到值字段 日期选择器输入控件。(b) 当控件启用编辑时, date_pickr 类已添加到控件中。随着值(value) 控件设置为正确的值和格式,日期选择器 当字段接收到时自动显示正确的日历 重点。(c) $_POST 值(用于写回数据库)设置在 隐藏输入控件。首先控件接收数据库 值(value)。如果该值被编辑,则“onSelect:”选项函数 被触发,其中包含日期选择器的 id(即 recordID 对于该行,来自数据库)被附加到隐藏的 ID 具有正确格式的日期值的字段。
注意:php 日期格式与 jQuery 不同。要在 PHP 中获取 yyyy-mm-dd,您需要“Y-m-d”。对于 jQuery,您需要“yy-mm-dd”。
瞧!任务已完成,但始终愿意接受建议/改进。
关于javascript - datepicker:显示数据库中的值但允许用户更改;页面上有多个 datepicker(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059282/
我有一个 ASP.NET 网站,我希望只允许 AD 组中的用户访问该网站。我正在使用如下的 web.config 片段,但这似乎不起作用:
仅当选中所有框时才应禁用“允许”按钮。我该怎么做?我已经完成了 HTML 部分,如下所示。如何执行其中的逻辑部分?即使未选中一个复选框,也应禁用“允许”按钮
当前有一个Navigator.push(context,route),但是上下文部分返回了错误,在尝试调试后,我发现问题是因为我在调用一个函数而不是直接将home设置为widget树。但是现在我不确定
这是我的邮政编码正则表达式 ^[a-zA-Z0-9]{1,9}$ 但不允许 A-12345。如何更改 - 也将被允许的正则表达式? 最佳答案 在字符集的开头或结尾添加-([...]): ^[-a-zA
我目前正在建立我的网站,但遇到了一个问题 JavaScript 中的混合内容阻止 当我尝试加载和显示来自 的图像和页面时,Chrome、Mozilla 和 Explorer 会发生这种情况http 我
我见过使用: [mysqld] bind-address = 255.112.324.12 允许远程访问单个 IP。我如何允许从 mysql 远程访问所有 IP? 最佳答案 如果你想允许它用于所
我想知道是否可以使用模板实现某些功能。我想要做的是允许特定的“复制构造函数和赋值运算符”从一个模板到另一个模板并禁用其他模板。 我想我只完成了一件我想要的事情,所以我提供了下面的类(class)。对于
这个问题在这里已经有了答案: How to validate an email address in PHP (15 个答案) 关闭 2 年前。 正则表达式让我大吃一惊。我如何更改此设置以验证带有加
解析可以采用以下格式之一的日期的最佳方法是什么 "dd-MM-yyyy HH:mm" "dd/MM/yyyy HH:mm" "dd.MM.yyyy HH:mm" 无需创建 3 个 SimpleD
我们知道,下面的代码格式不正确,因为成员 x 在依赖的基类中。但是,将指定行上的 x 更改为 this->x 将修复错误。 template struct B { int x; }; tem
如果能帮助我理解“Java 并发实践”中的以下内容,我将不胜感激: Calling an overrideable instance method(one that is neither privat
此时如果上传一个不在预定义的安全扩展名列表,如.lrc,会报错: File type does not meet security guidelines. Try another. 解决此问题有
我有一个运行韵律,可以为我的几个域和一个 friend 域处理 XMPP。我 friend 域中的一位用户(他的妻子)想更改她的密码(实际上她忘记了她,所以我会用 prosodyctl 设置一个,然后
使用 nginx,您可以允许和拒绝范围和 ips (https://www.nginx.com/resources/admin-guide/restricting-access/)。使用realip模
什么是一些好的克里金法/插值想法/选项,可以让重度权重的点在绘制的 R map 上的轻权重点上流血? 康涅狄格州有八个县。我找到了质心并想绘制这八个县中每个县的贫困率。其中三个县人口稠密(约 100
我正在使用 virtualbox + ubuntu + vagrant . 但是我不能ping或 wget任何网址。请指导我如何允许虚拟机访问我的主机的互联网? 最佳答案 这对我有用。 使用此配置 V
标题可能有点令人困惑,所以让我向您解释一下。 在 Swift 中,我们可以拥有带有默认参数值的函数,例如: func foo(value: Int = 32) { } 我们也可以有 In-Out 参数
有TextView1 和TextView2。 TextView2 应该 float 在 TextView1 的右侧。只要两个 TextView 的总宽度不使 TextView2 与右侧的框重叠,Tex
使用 Magento 收集方法 addFieldToFilter 时是否可以允许按 NULL 值进行过滤?我想选择集合中具有自定义属性的所有产品,即使没有为该属性分配任何值。 最佳答案 您不需要使用
我正试图从 .htaccess 文件中的规则中“排除”一个目录(及其所有文件夹)... 不确定这是否可能? .htaccess 文件是这样的: Order Allow,Deny Deny from a
我是一名优秀的程序员,十分优秀!