onPrideWorkerのブログ -9ページ目

onPrideWorkerのブログ

ブログの説明を入力します。


バリデーションについて。

規模がそこそこあったり、似てるけど微妙に条件が違ったりするとif文が増えてしまいます。


そこで一つの実装方法を紹介。


<form id="root">
<input type="text" data-minValue="10" />
</form>

<script>
function validation(){
var root = $('#root[input]');
for(var i = 0; i < root.length; i++){
var el = $(root[i]).attr('data-minValue');
if(!minValue(el){
alert("minValueValidation");
}
}
}

function minValue(value , min){
if(value < min){
return false;
}
return true;
}
</script>

単純に書くとこんな感じ
バリデーションをかけたい範囲にrootというIDをつけてその中の属性を見て、値がdata-minValueより小さかったらアラート出してます。
(実行してないのでちゃんとできてるかわかりませんが)

IDやクラスに特定の名前つけてやってもいいんですが、それは以前から普通にやってた?んじゃないかと思ったのでdata属性とjQueryを生かした書き方をしてみました。


で、
var el = $('#root');
という書き方なんですが。
某上司から「この書き方だとDOM要素の参照は最初だけで済むんだよね~」

と聞いたことがありまして。
ずっとそうなんだと思ってたんですが、ふとオブジェクト型は参照渡しだよな・・・と気づきました


というか、このelを変更すればDOMも変わるので絶対そうじゃん・・・とか思って気持ちげんなりしました^^;

職場で連想配列を使ってたんですが、とりあえず入れなおせばいいやと思ってfor文で詰めなおしたりしてましたが





このやり方は変だ^^


と思ったので調べてみたらjQueryのextendを使えば簡単なようです。

var object = {test : true , hoge : false};

var work = $.extend(true , {} , object};

簡単ですね!


まあ職場ではjQuery使ってないので(禁止されてる)別の方法を使わないといけないっすね