2009-08-22 3 views
0

오늘 아침에 JS 구문에 대해 꽤 평범한 질문을했습니다. 누군가 내가 대신 코드를 사용하도록 제안 했으므로 JS에 대해 사실상 제로를 알고 있기 때문에 먼저 코드를 사용하라고 제안했습니다.자바 스크립트 양식 포커스, 내 코드가 좋아 보이나요?

중간 정도의 PHP 지식을 사용하여 'else if' 문 (아래 참조)을 사용하여 두 번째 ID를 약간 수정하고 JavaScript에 대해 더 잘 알고있는 사람들이 모두 괜찮은 지 알 수 있는지 궁금한가요?

아니면 다르게 할 수 있을까요?

window.onload = formfocus; 

function formfocus() 
{ 
    var id_one; 
    var id_two; 

    id_one = document.getElementById('author'); 
    id_two = document.getElementById('s_primary'); 

    if (id_one) 
    { 
     id_one.focus(); 
     id_one.value = ''; 
    } 
    else if (id_two) 
    { 
     id_two.focus(); 
     id_two.value = ''; 
    } 
} 

편집 : 내 window.onload = formfocus();에 대해 약간 우려 ...하지만 내가 원하는 것을 달성하기 위해 다른 방법이 있는지 정말 모르겠습니다.

+0

네, 정상적으로 작동합니다. – TheVillageIdiot

답변

3

특히 jquery를 사용하는 경우 더욱 간결 할 수 있습니다. 하지만 적어도 다음과 같은 변경 것, 당신이 평범한 구식 자바 스크립트에 충실하려는 가정 :

var id_one; 
var id_two; 

id_one = document.getElementById('author'); 
id_two = document.getElementById('s_primary'); 

또한

var id_one = document.getElementById('author'); 
var id_two = document.getElementById('s_primary'); 

에, 그것은 공백 함수 인수를 둘러싸고하지 않는 매우 표준 관행이지만, 나는 그것이 여기서 논의되어서는 안되는 스타일 문제라고 생각합니다. 코드가 작동하는 동안

-1

아주 좋아 보입니다. 읽기 쉽고 이해하기 쉽습니다.

그냥 자바 스크립트 구문에 대한 지식을 증가시키기 위해, 당신은 너무 그것을처럼 뭔가를 할 수 :

function formfocus() 
{ 
    var id_one; 
    var id_two; 

    id_one = document.getElementById('author'); 
    id_two = document.getElementById('s_primary'); 

    with(id_one || id_two) 
    { 
     focus(); 
     value = ''; 
    } 
} 

* 추신 (LOL 그러나 나는 "과"사용을 사랑),이 예는 내가 아는 추한입니다.

+3

with()와 함께 사용하지 마십시오 ... 존재하지 않는 속성 액세스가 전역으로 간주되므로 일반적으로 나쁜 관행으로 간주됩니다. – James

+0

그런 짧은 발췌 문장에서 중요한 것은 아니지만 "with"는 일반적으로 나쁜 습관으로 간주됩니다. Javascript 인터프리터가 id_one 또는 id_two 범위의 함수에 대해 블록의 각 변수 및 함수 호출을 검사하도록합니다. 말할 필요도없이 큰 스크립트에는 많은 모호함이 있습니다. 예를 들어, "값"이 전역 변수이기도합니다. 참조 : http://www.barryvan.com.au/2009/05/avoid-javascripts-with-keyword/ –

0

, 다음은 훨씬 덜 장황 : 당신이 더 많은 자바 스크립트를 작성하는 계획이라면

window.onload = function() { 
    var id_one = document.getElementById("author"); 
    var id_two = document.getElementById("s_primary"); 

    // Original code... 
} 

뭔가 고려.

관련 문제