【发布时间】:2014-01-27 11:51:43
【问题描述】:
现在我正在解决一个巨大的谜团,为什么 JQUery 不在我的 RoR Web 应用程序中显示我的隐藏输入。这段代码可能不太好(我对 JQuery 或 JS 很陌生),但我想知道为什么它不会显示我的隐藏元素而是用我想要的逻辑更改标签,即使它在同一个代码块中。
你有什么合理的解释为什么 checkbox.show();不会显示元素?我是否必须使用不同的选择器或类似的东西选择复选框? jQuery代码:
$(document).ready(function () {
var checkbox = $('#event_halfday');
$('#others #event_start_at').datepicker().on('changeDate', function () {
var start = $('#others #event_start_at').val();
var end = $('#others #event_end_at').val();
if(start != end) {
if($('#event_halfday').attr('type') == 'hidden') {}
else {
checkbox.val("0");
checkbox.hide();
$("label[for='event_halfday']").text("You can't create event where From: is not the same as To: as a halfday.")
}
}
else {
$("label[for='event_halfday']").text("Is this a halfday event?")
checkbox.show();
}
});
});
该复选框是由 simple_form gem 生成的,所以它看起来像这样 = f.input :halfday, label: "Is this a halfday event?", :default => false 并且生成的 http 是:
<div class="form-group boolean optional event_halfday">
<input name="event[halfday]" type="hidden" value="0" />
<label class="boolean optional checkbox" for="event_halfday">
<input class="boolean optional" id="event_halfday" name="event[halfday]" type="checkbox" value="1" />Is this a halfday event?</label>
</div>
</div>
感谢您的回复和您的宝贵时间。祝你有美好的一天!
【问题讨论】:
-
你有id为
event_halfday的元素吗?如果元素存在,它是如何被隐藏的 - 有一些额外的类或标准style='display: none'。 -
是的,它在“问题”帖子中。它被 JQuery 调用隐藏了 .hide();就可以了。
-
您的浏览器上安装了 firebug 或类似工具。如果是这样,请尝试从控制台手动运行
('#event_halfday').show()。还要检查复选框及其父项的样式。 -
当我在 firebug 控制台中调用 $('#event_halfday').show() 时,它会返回我的 object[] 实例,但它不显示复选框:(
-
是字面意义上的
object[ ]还是软管支架之间有什么东西?
标签: javascript jquery html ruby-on-rails simple-form