我对javascript相对较新。下面的代码可以阻止其他一些javascript(http://www.oesmith.co.uk/morris.js)在我的应用中运行。如果我删除下面的代码,Morris图表会正确呈现。下面的代码做我想要的,但它阻止图表显示。我在Rails中编程。任何想法我可能做错了以及如何解决它?
$(document).ready(function(){
var str = $("#rule_rule_type").val().toLowerCase();
if (str=="complex") {
$("#id_ttl").hide();
$("#id_condition_2").show();
$("#id_value_2").show();
}
else if (str=="correlation") {
$("#id_ttl").show();
$("#id_condition_2").show();
$("#id_value_2").show();
}
else if (str=="simple") {
$("#id_ttl").hide();
$("#id_condition_2").hide();
$("#id_value_2").hide();
}
$("#rule_log_type").change(function () {
logtype = $("#rule_log_type :selected").text();
switch (logtype)
{
case "Syslog":
$("#rule_severity")
.find('option')
.remove()
.end()
.append('<option value="Emergency">Emergency</option>')
.append('<option value="Alert">Alert</option>')
.append('<option value="Critical">Critical</option>')
.append('<option value="Error">Error</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Notice">Notice</option>')
.append('<option value="Information">Information</option>')
.append('<option value="Debug">Debug</option>');
$("#rule_condition_1")
.find('option')
.remove()
.end()
.append('<option value="Severity">Severity</option>');
$("#id_condition_2").hide();
$("#id_value_2").hide();
break;
case "Microsoft Windows":
$("#rule_severity")
.find('option')
.remove()
.end()
.append('<option value="Critical">Critical</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Information">Information</option>');
$("#rule_condition_1")
.find('option')
.remove()
.end()
.append('<option value="Event ID">Event ID</option>')
.append('<option value="Instance ID">Instance ID</option>');
$("#id_condition_2").show();
$("#id_value_2").show();
break;
}
});
$("#rule_rule_type").change(function () {
ruletype = $("#rule_rule_type :selected").text();
switch (ruletype)
{
case "Complex":
$("#id_ttl").hide();
$("#id_condition_2").show();
$("#id_value_2").show();
break;
case "Correlation":
$("#id_ttl").show();
$("#id_condition_2").show();
$("#id_value_2").show();
break;
case "Simple":
$("#id_ttl").hide();
$("#id_condition_2").hide();
$("#id_value_2").hide();
break;
}
});
});
答案 0 :(得分:0)
我认为只是代码导致错误。
尝试定义logtype
和ruletype
替换:
var str = $("#rule_rule_type").val().toLowerCase();
使用:
var str = $("#rule_rule_type").val().toLowerCase(),
logtype, ruletype;
答案 1 :(得分:0)
很可能,$("#rule_rule_type")
不在DOM中。
首先,请确认您是否尝试定位正确的id
属性,并确保您没有拼错任何内容。然后,确保使用正确的方法对jQuery对象进行操作。 val()
将返回HTML输入的当前值。 html()
将从开放式HTML标记中检索HTML。