2009-08-22 19 views
0

今朝私は自分のJS構文についてのかなり世俗的な質問をしました。誰かが自分のコードを使用するように提案したので、私はJSについて事実上ゼロを知っています。JavaScriptフォームのフォーカスは、私のコードは大丈夫ですか?

私の中程度のPHP知識を使って、'else if'文(下記参照)を使って2番目の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を使用している場合は、間違いなくもっと簡潔になる可能性があります。しかし、あなたは、昔ながらのjavascriptに固執したい、私は、少なくとも以下を変更したいと仮定すると:

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

見た目がよく見え、わかりやすいです。

ちょうどjavascriptの構文についてのあなたの知識を高めるために、あなたもそれのような何かができる:

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 = ''; 
    } 
} 

* psを(LOLが、私は「と」使用を愛する)、この例では、私が知っている醜いです。

+3

with()と一緒に使ってはいけません...存在しないプロパティへのアクセスはグローバルであるとみなされるので、一般的に悪い習慣とみなされます。 – James

+0

このような短いスニペットでは重要ではありませんが、「with」は一般的に悪い習慣とみなされます。 Javascriptインタプリタは、ブロック内の各変数と関数呼び出しをid_oneまたはid_twoスコープの関数と照合するように強制します。言うまでもなく、大規模なスクリプトでは多大なあいまいさがあります。たとえば、「値」もグローバル変数である場合です。参照:http://www.barryvan.com.au/2009/05/avoid-javascripts-with-keyword/ –

0

あなたのコードは機能的ですが、次ははるかに少ない冗長です:あなたはより多くのJavascriptを書くことに計画している場合に考慮すべき

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

    // Original code... 
} 

何か。

関連する問題