我有一个名为“requestHistoryRequestType”的选择框。我正在尝试编写一些jQuery,以便当该选择框的值发生更改时,我调用一个函数,它将一个类和属性添加到字段中,并将一个跨度附加到作为参数传入的字段中。如果选择输入等于值,则执行此操作,如果更改则删除这些更改
问题是,如果用户选择EXPAPP或EXPDEN,但随后将其选择更改为NA,则应从先前的字段中删除添加的内容并将相同的内容添加到不同的字段。有点难以解释,但提出问题!我有点新来编写复杂的jQuery。
,做加法类和这样的功能:
function requiredField(requiredField) {
$(requiredField).parent().addClass('has-error');
$(requiredField).attr('data-rule-required', true);
$("label[for='" + requiredField.replace('#', '') + "']").append("<span style='color:#b94a48;' class='has-error has-tooltip' data-placement='right' title='Required Field'>*</span>");
}
实际的变化监听器:
//Validations for EXPAPP, EXPDEN, and NA
$("#requestHistoryRequestType").on("change", function() {
if ($("#requestHistoryRequestType").val() === "EXPAPP" || $("#requestHistoryRequestType").val() === "EXPDEN"){
requiredField("#requestHistoryVerbalDateTime");
requiredField("#requestHistoryWrittenDateTime");
} else if ($("#requestHistoryRequestType").val() === "NA") {
requiredField("#requestHistoryComments");
}
});
感谢堆栈!
_“编写复杂的jQuery”_,这是主要问题,它不应该是_complex_。 – undefined
好吧,这是复杂的,我试图写一些可重用的东西,因此功能。 – Devan
使用可重复使用的函数是最好的选择。请注意,您可以使用'this'关键字来引用_changed_元素(event_的_ie目标),而不是重新查询DOM,而不是'$(“#requestHistoryRequestType”)。 $(“#requestHistoryRequestType”)。val()===“EXPDEN”)'你可以编码:'if($ .inArray(this.value,['one','two'])> -1)' – undefined