매우 중요한 문제가 있습니다.서식 객체의 Javascript 크기
<html:select property="city" name="city" onchange="javascript:checkCity(this);">
<html:option value="N">NewYork</html:option>
<html:option value="F">France</html:option>
<html:option value="I">Italy</html:option>
<html:option value="P">Paris</html:option>
</html:select>
내 for 루프에 배치되어 있기 때문에 하나 또는 여러 개의 HTML 선택이 될 수 있습니다
다음은 내 JSP 코드입니다. 자바 스크립트 :
다음은 내 자바 스크립트 코드
다음var citySelected = new Array();
function checkCity(selObject)
{
var form = document.forms[0];
var cityObj = form["city"];
var len = cityObj.length;
if(selObject==cityObj) // if there is single <html:select> selObject is same as city Object.so this logic works fine
{
if(cityObj.value==cityObj.options[3].value)
{
alert("You have selected Paris City");
citySelected[0] = true;
}
if(!cityObj.options[3].selected && cityObj[0])
{
var result = confirm("You have selected cities other than paris");
if(result)
{
citySelected[0] = false;
}
else
{
cityObj.options[cityObj.options.selectedIndex].selected=false;
cityObj.options[3].selected=true;
}
}
}
else{
for(var i=0; i<len; i++) { //if there are multiple <html:select> then take length of form object n iterate
if (selObject == cityObj[i])
{
if(cityObj[i].value==cityObj[i].options[3].value) // if 3rd option is selected
{
alert("You have selected Paris City");
citySelected[i] = true;
}
if(!sctypeObj[i].options[3].selected && citySelected[i]) //if 3rd option is deselected
{
var result = confirm("You have selected cities other than paris");
if(result)
{
cityObj[i] = false;
}
else
{
cityObj[i].options[cityObj[i].options.selectedIndex].selected=false;
cityObj[i].options[3].selected=true;
}
}
}
}
}
}
입니다 JSP로 온로드() 하나가있는 경우
여기function onload()
{
var form = document.forms[0];
var formObj = form["city"];
var size=formObj.size;
var len = formObj.length;
for(var i=0; i<len; i++) {
citySelected[i] = false;
}
if(size==0){ //if there is seingle <html:select> element
var cityvalue=formObj.value;
if(cityvalue=="P")
{
citySelected[0] = true;
}
}
else
{
for(var i=0; i<len; i++) { //if there are multiple <html:select> elements
var cityvalue=formObj[i].value;
if(cityvalue=="P")
{
citySelected[i] = true;
}
}
}
}
어디 problem.Onload을 발견하고있다 작동 자바 스크립트 또는 여러 요소를 논리가 잘 작동합니다.하지만 내 jsp pr 전혀 요소가없는 경우 모든 드롭 다운을 삭제할 수있는 옵션이 있으면 내 JSP로 자바 스크립트 오류가 throw됩니다. "크기가 null 또는 개체가 아닙니다."
onload() 함수에서 size를 사용하여 btwn 요소를 구별하는 방법은 무엇입니까?
if(size==0)
{
//logic for single <html:select>
}
else
{
//logic for multiple html select
}
그러나 모든 내 JSP 홍보에는 요소 내가 모든 드롭 다운을 삭제할 수있는 옵션이있는 경우 다음 "개체의 크기가 null인지"내 JSP가. 자바 스크립트 오류가 발생 말할있을 때.
if(!size)
{
//logic for single <html:select>
}
else
{
//logic for multiple html select
}
또한 0은 false로 평가되므로 길 아래의 어떤 지점에서 0 크기가 시작 되더라도이 코드는 여전히 작동합니다. – Russ
그게 작동하지 않는다면. html : 요소를 모두 선택하고 여전히 던짐 오류. 단일 선택 요소 크기는 0입니다. – cxyz