私はあなたの言い回しに少し混乱していますが、最初に空の文字列ではないかどうかを確認したいと思いますか? また、それが未定義である可能性を解決します..もしそうなら、これはあなたがやりたいことです..
validate: function(attrs) {
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
if (typeof(attrs.mystring) != "undefined"){
if (!attrs.mystring){
return -1;
}
}
}
属性の 1 つだけを検証する場合は、それに応じてオプションに対応するように検証関数を作成する必要があります。
validate: function(attrs, option) {
if (!option){
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
if (!attrs.mystring){
return -1;
}
}else{
switch(option){
case("string"):
if (!attrs.mystring){
return -1;
}
break;
case("number"):
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
break;
}
}
}
これを行うには多くの方法がありますが、これはおそらく最も効率的ではありませんが、あなたの例を使用すると、うまくいきます。
また、これは実際にはbackbone.jsの問題ではありません...しかし、一般的なjs