我有以下代码。
function validateStatuses(bill_id){
var bill = bills[bill_id];
var selects = $('#bill_'+bill.bill_id+' .status_select');
var codes = $('#bill_'+bill.bill_id+' .status_code');
var value = null;
for (var i = 0; i < selects.length; i++) {
//value = document.getElementById('#Item_'+Item.item_id+'statuses'+codes).value;
value = selects[i].options[selects[i].selectedIndex].value;
if (value == 'new'){
for (var j = 0; j < codes.length; j++) {
var blagh = codes[j].options[codes[j].selectedIndex].text;
if( value == 'new' && blagh == "none"){
//A status exist of NEW with a status code of NONE this is not acceptable
$('#info_dialog').html('');
$('#info_dialog').append("<p>You are trying to process an object with a View of NEW and a This CODE of NONE. Please correct this issue before you proceed!</p><hr />");
$('#info_dialog').dialog({
buttons:{
Cancel: function(){
$(this).dialog('close');
}
}
});
return false;
}//end if
}//end for
}else{
}//end if
}//end for
return true;
}//end function
我希望错误仅在值=='new'&amp;&amp; blagh ==“无”符合。如果变量值已设置为new以外的值,则此方法有效。但是,如果变量是新的并且我没有更改选定的blagh索引,则条件仍然失败。 只有在值= = new时更改值和blagh的值时才接受条件。该函数是从onCLick事件运行的,我认为该事件会强制值变量更新为新选择的索引。我在这里错过了什么?有什么建议吗?
答案 0 :(得分:1)
您可能需要运行您的函数以响应select元素的change事件,而不是click事件。在您收到点击事件时,不会更新选择控件的值。