У меня есть 2 сценария jQuery - один, прежде чем я добавил .preventDefault и копию того же script после добавления .preventDefault. jQuery работает в исходном, но не после добавления .preventDefault()
Начальный script, который работает
$(window).load(function(){
$(document).ready(function(){
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
clearID();
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
if ($("select[title='action']").val() == "") {
$("tr.actDet").hide();
}
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === "I don\'t know") {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout
}); // close doc.ready
}); // close window.load
Script, который не работает...
$(window).load(function(){
$(document).ready(function(){
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
clearID();
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
if ($("select[title='action']").val() == "") {
$("tr.actDet").hide();
}
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() !== "I don\'t know") {
$(this).preventDefault();
} else {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout-- close edit record stuff
}); // close doc.ready
}); // close window.load
Единственное изменение, которое я сделал, это исходный оператор if, который становится if/else, который вызывает .preventDefault(). Первый script отлично работает, но второй script терпит неудачу. Зачем? Я вызываю метод .preventDefault(), если значение элемента организации равно idk в существующей записи.
@Andrew: Чтобы уточнить ваше редактирование... Должен ли я пересмотреть свой script на: ...
if ($(this).val() !== "I don\'t know") {
$(this).click( function(e) { e.preventDefault(); } );
} else {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
... b/c Я отметил, что он будет работать правильно, если я изменю $(this).preventDefault(); к e.preventDefault();
Возможно, вы пытаетесь показать, как записать его, если я хочу привязать метод к объекту $(this), как я его изначально написал?