2012-03-16 2 views
0

Если кто-то может указать, что я делаю неправильно, я буду вечно благодарен! Кажется, я не могу получить правильную комбинацию круглых скобок - как объединить несколько условий в один оператор? Очевидно, я не ожидаю, что кто-нибудь изменит код ниже, я просто хочу показать, чего я пытаюсь достичь.Условия JavaScript

Если кто-то может объяснить логику для меня это было бы большое

Благодаря

function ChangeButton() 
{ 
if 
((document.forms[0].IPR.value == "") && (document.forms[0].FNM1.value == "") && (document.forms[0].FNM1.value == "") && (document.forms[0].SURN.value == "") && (document.forms[0].GEND.value == "") && (document.forms[0].DOB.value == "") && (document.forms[0].CRIM.value == "") && (document.forms[0].ETHC.value == "") && (document.forms[0].DSBC.value == "") && (document.forms[0].MARK1.value == "") && (document.forms[0].NATC.value == "") && (document.forms[0].COBC.value == "") && (document.forms[0].COD.value == "") && (document.forms[0].FIVE.value == "") && (document.forms[0].PERM.value == "") && (document.forms[0].VISF.value == "") && (document.forms[0].USD.value == "") && (document.forms[0].HAD1.value == "") && (document.forms[0].HAD3.value == "") && (document.forms[0].HTEL.value == "") && (document.forms[0].HAEM.value == "") && (document.forms[0].FEES.value == "") && (document.forms[0].REF1TIT.value == "") && (document.forms[0].REF1ORG.value == "")  && (document.forms[0].REF1POS.value == "") && (document.forms[0].REF1AL1.value == "") && (document.forms[0].REF1AL3.value == "") && (document.forms[0].REF1AL5.value == "") && (document.forms[0].REF1EMA.value == "") && (document.forms[0].DISC.value == "")) 
&& 
((document.forms[0].PERM.value == "") && (document.forms[0].FIVE.value == "N")) 
&& 
((document.forms[0].AGNT.value == "") && (document.forms[0].USD.value == "Y")) 
&& 
((document.forms[0].CSTRT.value == "") && (document.forms[0].USD.value == "N") && (document.forms[0].CENDD.value == "") && (document.forms[0].CAD1.value == "") && (document.forms[0].CAD3.value == "") && (document.forms[0].CAD4.value == "") && (document.forms[0].CAPC.value == "") && (document.forms[0].CTEL.value == "")) 
&& 
((document.forms[0].AWDB.value == "") && (document.forms[0].FEES.value == "") && (document.forms[0].FEES.value == "Private Funds Self or Family") && (document.forms[0].AWDS.value == "")) 
&& 
((document.forms[0].RESEARCH.value == "Y") && (document.forms[0].RESSRT.value == "") && (document.forms[0].RESMOA.value == "") && (document.forms[0].RESAR.value == "") && (document.forms[0].RESDIS.value == "")) 
{ 
document.getElementById('submitbutton').className = 'enabled'; 
} 
else { 
document.getElementById('submitbutton').className = 'disabled'; 
} 
} 
+0

, возможно, некоторые JQuery может быть в порядке? –

+0

Это действительно «отличное», чтобы сказать, почему какой-то код «неправильный», когда мы не знаем, что он должен делать. – Quentin

+0

В чем вопрос? у вас есть какие-то ошибки? то, что ты делаешь, кажется мне хорошо. – Th0rndike

ответ

0

Я вижу

...&&... document.forms[0].FIVE.value == "" 
...&&... document.forms[0].FIVE.value == "N" 

Это не верно

EDIT

Я думаю, вы должны изменить подход, попробуйте что-то вроде этого:

function ChangeButton() 
{ 
    var frm = document.forms[0]; 
    var neverEmpty = ['field1','field2','field3']; 
    var mustBe  = {field3:'Y', field4:'N'}; 

    var status = 'ok'; 

    for(var i = 0; i<neverEmpty.length; i++) { 
     if(frm[neverEmpty[i]] == '') { 
     status = 'ko'; 
     break; 
    } 
} 

for(myField in mustBe) { 
    if(frm[myfield] != mustBe[myField]) { 
     status = 'ko'; 
     break; 
    } 
} 
document.getElementById('submitbutton').className = status=='ok'? 'enabled' : 'disabled'; 

}

+0

Хорошее место, поэтому я должен использовать || вместо? – Marcus

+0

это зависит ... Что бы вы сделали? –

0

вы не закроете Скобки

if (document.forms[0].IPR.value == "" && document.forms[0].FNM1.value == "" && ect...) 

это так просто

+0

Я пробовал это, но консоль Chrome говорила мне, что это неправильно? Спасибо за предложение, будет продолжать пытаться. – Marcus

0

Вам понадобится еще один набор круглых скобок вокруг всей партии, т. Е. Если (a == b) {..}

0

Насколько я могу судить, вам не нужны любые круглые скобки (кроме тех, которые требуются синтаксисом if).

if(document.forms[0].IPR.value == "" && document.forms[0].FNM1.value == "" && 
    document.forms[0].PERM.value == "" && document.forms[0].FIVE.value == "N" && 
    ... 
    ) { 
    document.getElementById('submitbutton').className = 'enabled'; 
} else { 
    document.getElementById('submitbutton').className = 'disabled'; 
} 
0

Дайте входным элементам, которые должны быть непустыми атрибут «класс». Затем найдите все эти элементы, используя это, вместо того, чтобы писать этот безумно уродливый код.

+0

Спасибо, что полезно - как вы, наверное, можете сказать, я новичок в JavaScript. Изучит ваш предложенный метод. – Marcus

+0

К сожалению, это не так, атрибуты класса добавляются динамически через Uniface – Marcus

0

Вам нужно более 1 скобка до и перед первой фигурной скобкой все, если ( ... ) {...}

0

Вот исправленный код.

function ChangeButton() 
{ 
    if 
    ((document.forms[0].IPR.value == "") && (document.forms[0].FNM1.value == "") && (document.forms[0].FNM1.value == "") && (document.forms[0].SURN.value == "") && (document.forms[0].GEND.value == "") && (document.forms[0].DOB.value == "") && (document.forms[0].CRIM.value == "") && (document.forms[0].ETHC.value == "") && (document.forms[0].DSBC.value == "") && (document.forms[0].MARK1.value == "") && (document.forms[0].NATC.value == "") && (document.forms[0].COBC.value == "") && (document.forms[0].COD.value == "") && (document.forms[0].FIVE.value == "") && (document.forms[0].PERM.value == "") && (document.forms[0].VISF.value == "") && (document.forms[0].USD.value == "") && (document.forms[0].HAD1.value == "") && (document.forms[0].HAD3.value == "") && (document.forms[0].HTEL.value == "") && (document.forms[0].HAEM.value == "") && (document.forms[0].FEES.value == "") && (document.forms[0].REF1TIT.value == "") && (document.forms[0].REF1ORG.value == "")  && (document.forms[0].REF1POS.value == "") && (document.forms[0].REF1AL1.value == "") && (document.forms[0].REF1AL3.value == "") && (document.forms[0].REF1AL5.value == "") && (document.forms[0].REF1EMA.value == "") && (document.forms[0].DISC.value == "") 
     && 
     ((document.forms[0].PERM.value == "") && (document.forms[0].FIVE.value == "N")) 
     && 
     ((document.forms[0].AGNT.value == "") && (document.forms[0].USD.value == "Y")) 
     && 
     ((document.forms[0].CSTRT.value == "") && (document.forms[0].USD.value == "N") && (document.forms[0].CENDD.value == "") && (document.forms[0].CAD1.value == "") && (document.forms[0].CAD3.value == "") && (document.forms[0].CAD4.value == "") && (document.forms[0].CAPC.value == "") && (document.forms[0].CTEL.value == "")) 
     && 
     ((document.forms[0].AWDB.value == "") && (document.forms[0].FEES.value == "") && (document.forms[0].FEES.value == "Private Funds Self or Family") && (document.forms[0].AWDS.value == "")) 
     && 
     ((document.forms[0].RESEARCH.value == "Y") && (document.forms[0].RESSRT.value == "") && (document.forms[0].RESMOA.value == "") && (document.forms[0].RESAR.value == "") && (document.forms[0].RESDIS.value == ""))) 
     { 
     document.getElementById('submitbutton').className = 'enabled'; 
     } 
    else { 
     document.getElementById('submitbutton').className = 'disabled'; 
    } 
} 

USE и IDE, он будет делать ур жизнь просто .. Приветствия в Eclipse IDE :)

+0

, давая ему идти! Cheers :) – Marcus

Смежные вопросы