2011-05-11 3 views
14
<select id="Nazione" name="Nazione"> 
    <option prefix='+93' value='AF' >Afghanistan </option> 
    <option prefix='+355' value='AL' >Albania </option> 
    <option prefix='+213' value='DZ' >Algeria </option> 
    <option prefix='+376' value='AD' >Andorra .... etc 
</select> 

이 내가 경고 NULL이JQuery와 변경을 선택

$(document).ready(function() { 
    $('#Nazione').change(function(){ 

     alert($(this).find("option:selected").attr('prefix')); 
     alert($(this).attr('prefix')); 
    }); 
    }); 

을 JS ... 이유는 무엇입니까?

+0

[나를위한 작품] (http://jsfiddle.net/trxZK/). – lonesomeday

+0

http://jsfiddle.net/wzzMm/ 여기 Chrome에서 작동합니다. – rsplak

+0

마지막 입력에 대한 옵션 태그를 닫지 않았습니다. 오타가 있거나 실수로 코드에 오류가 있습니까? – Ammu

답변

10

코드가 정상입니다. 여기 데모입니다 : 속성 prefixselect 존재 만 반환됩니다 option

+0

JQUERY 1.5.2를 사용해보십시오 ....... BUG ?? – Ste

+1

정말 이상한 문제입니다. 문제는 코드가 아니라 속성 이름과 관련이 있습니다. 'prefix1'로 바꾸면 작동합니다 : http://jsfiddle.net/hKktc/7/ 버그인지 다른 것이 있는지 모르겠습니다. – JohnP

+0

'prefix'가 키워드 일 수 있습니다! :) –

4

코드에서 $(this)은 옵션이 아닌 <select>을 나타냅니다. prefix 특성이 존재하지 않습니다. <select>

두 번째 예제에서 문제가 발생할 수 있습니다.

4

제 2 회 alert 존재하지 않기 때문에 http://jsfiddle.net/hKktc/1/

두 번째 경고 호출에 대한 값을받지 못하고있는 이유는 <select>에는 prefix이라는 특성이 없기 때문에 null입니다.

1

정확히 무엇을 기대합니까?

두 번째 경고 (alert($(this).attr('prefix'));)가 문제를 일으키는 알림입니다. 마찬가지로 접두어 번호에 대한 경고가 표시되고 두 번째 경고로 인해 null에 대한 경고가 표시됩니다.

+0

위의 @JohnP에 대한 팁을 따라 - atrtibute'prefix'를 다른 것으로 변경하면 실제로 완벽하게 작동합니다. 나는'prefix'가 예약되어 있다고 생각합니다. 또한 이것은 좀 더 예쁘다. - '$ (document) .ready (function() { $ ('# Nazione')) 변경 (function() { alert ($ ('option : selected', this)이 코드는 @SLaks에 의해 [이 스레드] (http://stackoverflow.com/questions/2230704/jquery-getting-custom-).attr ('prefix1')), }), 속성에서 선택한 옵션). – phil

0

<select>의 값을 얻으려면 .val()이 아닌 .attr('prefix')이 필요합니다.

$(document).ready(function() { 
    $('#Nazione').change(function(){ 

     alert($(this).find("option:selected").attr('prefix')); 
     alert($(this).val('prefix')); 
    }); 
    });