- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道使用 jQuery 之类的东西是否可以实现以下操作。我已经查遍了,但没有找到解决方案。
我在我的项目中使用 MVC 3/razor。我有 jQuery 1.5.1。
我们想要一个下拉(选择)框来显示一些选项:- 每月- 每年- 每周- 日期
如果用户选择“日期”,我想显示一个日历框,然后将所选日期记录为选择框中的值。如果他们再次单击选择框,他们可以根据原始选择值更改值。
在我的项目中,同一页面上有几个这样的框。也许我可以通过类值将它们与点击操作联系起来?
到目前为止我发现的最接近的请求在这里:jQuery ui.datepicker on 'select' element...但我还无法让它在我的项目中发挥作用。
感谢任何帮助。
更新我需要绑定(bind)的添加元素会动态插入到页面中。也许这就是我的挑战的来源。
更新
这是我目前正在使用/弄乱的一些代码:
首先 - 我的代码是从模板动态添加的。我要绑定(bind)的字段位于下面,并且可能在页面中多次存在:
<td><select id="f${FormCount}_PeriodWorked[]" name="PeriodWorked" class="periodworked">
<option value="month">Month</option>
<option value="annual">Annual</option>
<option value="date" class="datepick">Date</option>
</select>
</td>
在动态添加表单的主页上,我尝试将日期选择器添加到“日期”选项。
$(".periodworked").live("change", function () {
if ($(this).val() == "date") {
alert("In... now how to throw date picker....");
}
})
最后 - 将其绑定(bind)到相应的字段...有没有办法使用 $(this) 来处理这个问题,或者我是否必须想出其他方法来找到我选择的特定选择?
更新
感谢您的帮助 - 我设法让它工作。我知道我的情况非常具体,但如果它对其他人有帮助的话,这里是代码......
首先 - 通过 CSS,我使用颜色来隐藏表单字段(与表格相同的背景颜色 - 模拟 MS Excel 外观)。显示日期选择器的输入字段的字体颜色使用相同的颜色来防止看到任何文本(尽管如果看到它只是在字段隐藏之前闪烁)。
在我的模板中,我修改了单元格,如下所示:
<td><select id="f${FormCount}_PeriodWorked[]" name="PeriodWorked" class="periodworked add-date">
<option value="month">Month</option>
<option value="annual">Annual</option>
<option value="date" class="datepick">Date</option>
</select>
<input name="tempDatePicker" type="text" size="1" class="datepicker for-option" style="display:none; color: #EFEFEF;" /></td>
在我的主页中,我必须做一些“有趣”的事情。代码如下:
$("select.add-date").live("change", function () {
if ($(this).val() == "date") {
//alert("In... now how to throw date picker....");
$(this).parents('td').find('input.datepicker').show();
$(this).parents('td').find('input.datepicker').datepicker({
onSelect: function (dateText, inst) {
var opt = $('<option />').attr('value', dateText).attr('selected', 'selected').text(dateText);
var select = $(this).parents('td').find('select.add-date');
// NOTE: ommitted code to check if the date is already in the select
$(select).append(opt);
}
}).focus();
} else {
$(this).parents('td').find('input.datepicker').hide();
}
});
$('input.datepicker.for-option').live('blur', function (dateText, inst) {
$(this).hide();
});
您会注意到我已将日期选择器添加到实时/更改功能内的输入中。由于某种原因,这是它唯一有效的方法(而不是将日期选择器放置在实时之外)。这也允许我使用 onSelect 方法,该方法可以正确地从日历中提取所选值,因为无论出于何种原因,模糊都无法检索该值并返回空白结果。
我的模糊方法只是隐藏包含日历的输入字段。
这一切都工作正常 - 但在我的例子中,我通过复制表的第一行并将其附加到现有表来动态添加许多字段。除非您在该行中使用日期选择器,否则一切正常。此时,类和 id 被分配给日期选择器的输入对象,然后复制该对象,然后将所有事情搞砸。为了解决这个问题,我在 insertRow 函数中添加了一个方法,基本上可以删除插入并重新编写它。天哪,我希望这是有道理的......代码:
function addLines(formNum, lines) {
for (var l = 0; l < lines; l++) {
var table = document.getElementById("formTable_" + formNum);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for (var i = 0; i < colCount; i++) {
var newcell = row.insertCell(i);
if (table.rows[1].cells[i].innerHTML.search('name="PeriodWorked"') != -1) {
newcell.innerHTML = table.rows[1].cells[i].innerHTML.substr(0, table.rows[1].cells[i].innerHTML.search("<input"));
newcell.innerHTML = newcell.innerHTML +
'<input name="tempDatePicker" type="text" size="1" class="datepicker for-option" style="display:none; color: #EFEFEF;" />';
} else {
newcell.innerHTML = (table.rows[1].cells[i].innerHTML);//.replace(" hasDatepicker", "");
}
//newcell.childNodes[0].id = "f" + formNum + "_" + newcell.childNodes + (1 + parseInt(newcell.childNodes[0].id.substr(newcell.childNodes[0].id.lastIndexOf("_") + 1));
switch (newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
//resetDatePicker();
break;
// default:
// newcell.innerHTML = "";
// break;
}
}
}
}
再次 - 我感谢您的帮助!
最佳答案
要回答问题的 jquery 部分,您可以这样做:
<td>
<div>
<select id="f${FormCount}_PeriodWorked[]" name="PeriodWorked"
class="periodworked add-date">
<option value="month">Month</option>
<option value="annual">Annual</option>
<option value="date" class="datepick">Date</option>
</select>
</div>
<div>
<input type="text" class="datepicker for-option" style="display:none;" />
</div>
</td>
...然后...
$('input.datepicker').datepicker();
$("select.add-date").live("change", function () {
if ($(this).val() == "date") {
//alert("In... now how to throw date picker....");
$(this).parents('td').find('input.datepicker').show();
}
else {
$(this).parents('td').find('input.datepicker').hide();
}
});
$('input.datepicker.for-option').live('blur', function() {
var select = $(this).parents('td').find('select.add-date');
// NOTE: ommitted code to check if the date is already in the select
$('<option value="' + $(this).val() + '" selected="selected">' +
$(this).val() + '</option>').appendTo(select);
$(this).hide();
});
这应该适用于文本框模糊,但您也许可以使用 the datepicker's onSelect event将选项添加到选择中。我使用了模糊,因为我知道它适用于现场。
关于jquery - 选择下拉列表中的日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8712862/
在带有 jQuery 的 CoffeeScript 中,以下语句有什么区别吗? jQuery ($) -> jQuery -> $ - > 最佳答案 第一个与其他两个不同,就像在纯 JavaScr
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭13 年前。 Improve th
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
这个问题可能听起来很愚蠢,但请耐心等待,因为我完全是初学者。我下载了两个 jQuery 版本,开发版本和生产版本。我想知道作为学习 jQuery 的初学者,什么更适合我。 最佳答案 如果您对 jQue
The documentation说要使用 1.6.4,但我们现在已经升级到 1.7.2。 我可以在 jQuery Mobile 中使用最新版本的 jQuery 吗? 最佳答案 您当然可以,但如果您想
我在这里看到这个不错的 jquery 插件:prettyphoto jquery lightbox有没有办法只用一个简单的jquery来实现这样的效果。 我只需要弹出和内联内容。你的回复有很大帮助。
很明显我正在尝试做一些 jQuery 不喜欢的事情。 我正在使用 javascript 上传图片。每次上传图片时,我都希望它可见,并附加一个有效的删除脚本。显示工作正常,删除则不然,因为当我用 fir
这两个哪个是正确的? jQuery('someclass').click(function() { alert("I've been clicked!"); }); 或 jQuery('somec
我正在寻找一个具有以下格式的插件 if (jQuery)(function ($) { -- plugin code -- })(jQuery); 我明白 (function ($)
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
我知道这个问题已经被问过几次了,但想知道您是否可以帮助我解决这个问题。 背景:我尝试创建一个使用 Ajax 提交的表单(jQuery 表单提交)。我已经工作得很好,然后我想在表单上得到验证。我可以使用
我正在使用无处不在的jquery validate plugin用于表单验证。它支持使用metadata plugin用于向表单元素添加验证规则。 我正在使用此功能。当验证查找这些规则时,它会对元素进
我更喜欢为我一直在开发的网络社区添加实用的视觉效果,但随着事情开始堆积,我担心加载时间。 拥有用户真的更快吗加载(希望是缓存的)副本来自 Google 存储库的 jquery? 是否使用 jQuery
这个问题已经有答案了: Slide right to left? (17 个回答) 已关闭 9 年前。 你能告诉我有没有办法在 jQuery 中左右滑动而不使用 jQuery UI 和 jQuery
我如何找出最适合某种情况的方法?任何人都可以提供一些示例来了解功能和性能方面的差异吗? 最佳答案 XMLHttpRequest 是原始浏览器对象,jQuery 将其包装成一种更有用和简化的形式以及跨浏
运行时 php bin/console oro:assets:build ,我有 11 个这样的错误: ERROR in ../node_modules/jquery-form/src/jquery.
我试图找到 jQuery.ajax() 在源代码中的定义位置。但是,使用 grep 似乎不起作用。 在哪里? 谢谢。 > grep jQuery.ajax src/* src/ajax.js:// B
$.fn.sortByDepth = function() { var ar = []; var result = $([]); $(this).each(function()
我的页面上有多个图像。为了检测损坏的图像,我使用了在 SO 上找到的这个。 $('.imgRot').one('error',function(){ $(this).attr('src','b
我在理解 $ 符号作为 jQuery 函数的别名时遇到了一些麻烦,尤其是在插件中。你能解释一下 jQuery 如何实现这种别名:它如何定义 '$' 作为 jQuery 函数的别名?这是第一个问题。 其
我是一名优秀的程序员,十分优秀!