2011-05-12 3 views
1

niceforms 플러그인을 사용하여 선택 상자의 스타일을 지정합니다. 내가 겪고있는 문제는 value 옵션에있는 링크를 활성화하기위한 올바른 자바 스크립트 코드를 얻을 수 없다는 것입니다.Javascript val() selectbox가 올바르게 연결되지 않습니다.

(http://www.emblematiq.com/lab/niceforms/help/는) 다음 코드를 사용하라고 지시 niceforms 사이트 : 이것은 URL을 아래로 선택 드롭

el.lnk._onclick = el.onclick || function() { 
if(this.ref.oldClassName == "NFOnChange") {  
//code i added  
window.location.href = $(this.ref).val(); 
}}; 

을 연결 수 있도록 코드를 조작하려고 시도한가

el.lnk._onclick = el.onclick || function() { 
if(this.ref.oldClassName == "NFOnChange") { 
//insert your code here 
}}; 

입니다 문제는 링크가 예상대로 작동하지 않으며 해당 값에 연결되지 않습니다.

form class ="niceform" 
select class ="NFOnchange" 
option value = "http://link1.com" -> link1.com 
option value = "http://link2.com" -> link2.com 
option value = "http://link3.com" -> link3.com 

이 문제에 도움을 주시면 감사하겠습니다. 링크를 옵션 값과 일치 시키려면 올바른 코드 비트를 삽입하면됩니다. 최초의 "$"오프 확인

+1

'val()'은 (는) 양식 요소의 자바 스크립트 메소드가 아닙니다. 그러나 jQuery가 이것을 제공합니다. jQuery를 사용하고 있습니까? 그렇다면 코드 전체에서 사용해야합니다. –

+0

진실을 말하면 나는 javascript에별로 좋지 않다. 그냥 작업에 가까운 코드를 시도했다. 위의 코드는 jquery와는 아무런 관련이 없어야합니다 (내 페이지의 다른 인스턴스를 참조하는 경우에도 해당). selectedIndex를 시도했지만 'selectedIndex is undefined'와 비슷한 오류가 발생했습니다. – michael

+0

원시 요소에서 .val()이 작동하지 않는 것처럼 .selecctedIndex는 jQuery로 감싸 진 요소에서 작동하지 않습니다. jQuery로 감싼 요소가 있다면, .val()은 완전히 사용할 수있는 방법이지만 작동하지 않는다면 가정을 검사해야합니다 (아래에서 설명했듯이). – machineghost

답변

0

은, 그래서, 거의 모든 주요 JS 라이브러리에 의해 사용됩니다

window.location.href = $(this.ref).val(); 

당신이 사용하고있는 JS 라이브러리 알려하지 않는 한 아무런 의미가 없습니다.

jQuery를 사용하는 경우 val()이 작동해야합니다. (위에서 가정은 방화범 또는 크롬 개발자 콘솔을 사용하여 ... 당신이 있다면

console.log($(this.ref)) 

: 나는 $ this.ref가) 당신이 그 라인 전에이 권한을 추가하는 것입니다 무슨 생각을 실제로 확인 것 이 도구들 중 하나를 사용하지 않으면, 당신은 ;-)이어야합니다.

실제로 SELECT 요소를 선택했다는 것을 보여 주면 재미있는 일이 일어나고 있지만, 그렇지 않은 것 같습니다.

또한, 보조 노트로 당신이 아마 할 수 있다고 생각 :

$(this) 

것은 당신이 jQuery를 사용하는 경우.

jQuery를 사용하지 않는 경우 ... 사용중인 것을 알려 주시면 거기에서부터 갈 수 있습니다.

아, 라이브러리를 사용하지 않고 $가 자신 만의 맞춤 함수 인 경우 Felix는 요소에 "value()"메소드가 내장되어 있지 않음을 지적했습니다. 가장 가까운 옵션은 .selectedIndex입니다.이 옵션은 선택한 옵션의 색인 (모든 옵션 중에서)을 알려주는 SELECT 요소의 속성입니다. 그런 다음 사용 가능한 옵션 목록을보고 " 적절한 값의 ".value"속성).

+0

죄송하지만 이전에 이것을 명확히하지는 못했지만 jquery 프레임 워크와 niceforms 플러그인을 호출하고 있습니다. niceforms 플러그인이 jquery에 의존한다고 생각하지 않습니다. – michael

+0

자, 그럼 다음 단계는 console.log에 jQuery 변수 ("$ (this.ref)")를 넣고 실제로 생각하는 지 확인하는 것입니다. – machineghost

+0

(다시 console.log의 출력을 보려면 Firefox 플러그인 Firebug 또는 Chrome에 내장 된 Chrome 개발자 도구 또는 이와 유사한 도구를 사용해야합니다. 또는 알림, 하지만 고통 스러울 것입니다. JS 코드의 상당 부분을 코딩하는 경우 위의 도구 중 하나를 얻으십시오.) – machineghost

관련 문제