2013-02-14 3 views
-1

Чтобы проверить утверждение, я убедился, что флажки и количества согласованы друг с другом, но я не удостоверился, что выбран хотя бы один продукт или общее количество больше нуля. Как мне это сделать?checkbox - проверить хотя бы одну коробку

if (((document.form1.summer.checked) && (summer2012 <= 0)) || 
    ((document.form1.autumn.checked) && (autumn2012 <= 0)) || 
    ((document.form1.winter.checked) && (winter2012 <= 0))) 
{ 
    alertmsg = alertmsg + "Please enter Quantity" + "\n"; 
} 
else if (((!document.form1.summer.checked) && (summer2012 > 0)) || 
    ((!document.form1.autumn.checked) && (autumn2012 > 0)) || 
    ((!document.form1.winter.checked) && (winter2012 > 0))) 
{ 
    alertmsg = alertmsg + "Please choose Product" + "\n"; 

} 

HTML:

<tr> 
    <td align="right">Summer 2012</td> 
    <td> 
     <input type="checkbox" name="summer" value="Summer 2012" /> 
    </td> 
    <td align="center" width="69"> 
     <div align="right">20.00</div> 
    </td> 
    <td width="216"> 
     <input name="summer2012" type="text" size="5" value="0" /> 
    </td> 
</tr> 
<tr> 
    <td align="right">Autumn 2012</td> 
    <td> 
     <input type="checkbox" name="autumn" value="Autumn 2012" /> 
    </td> 
    <td align="center" width="69"> 
     <div align="right">20.00</div> 
    </td> 
    <td> 
     <input name="autumn2012" type="text" size="5" value="0" /> 
    </td> 
</tr> 
<tr> 
    <td align="right">Winter 2012</td> 
    <td> 
     <input type="checkbox" name="winter" value="Winter 2012" /> 
    </td> 
    <td align="center" width="69"> 
     <div align="right">20.00</div> 
    </td> 
    <td> 
     <input name="winter2012" type="text" size="5" value="0" /> 
    </td> 
</tr> 
+0

Можем ли мы увидеть HTML тоже? –

+0

Я предполагаю, что первый блок 'if' должен быть проверен на' summer.checked', а не 'ch1.checked'? – Alnitak

+0

да извините, мой ошибка – user2073133

ответ

1

Вы кажетесь уже есть тест, чтобы подтвердить, что для любого флажка должно быть соответствующее (положительное) количество и второй тест, чтобы подтвердить, что любое положительное количество также имеет чек против.

Все, что вам необходимо сделать, это проверить, что некоторая checkbox проверяется.

var f = document.form1; 
if (f.summer.checked || f.autumn.checked || f.winter.checked) { 
    // we're OK! 
} 
+0

спасибо. Мне сказали, что мои флажки и количества согласуются друг с другом, но он не удостоверился, что был выбран хотя бы один продукт или общее количество, большее нуля, было подано – user2073133

+0

@ user2073133, поэтому этот _additional_ тест гарантирует, что, по крайней мере, один был выбран. Все ваши оригинальные тесты (сделанные до этого) делают все остальное. – Alnitak

+0

спасибо Алнитак. Я написал регулярное выражение для количества, и максимум, который они могут заказать, составляет 500 для каждого (лето, осень, зима). Выражение: var chkquantity =^([1-9]? \ D | [1-4] \ d {2} | 500) $/ – user2073133

0

Это, как я хотел бы проверить, если какой-либо флажок был проверен:

var checkboxElements = [ 
    document.form1.ch1, 
    document.form1.autumn, 
    document.form1.winter, 
    document.form1.summer 
]; 

function anyChecked(checkboxElements) { 
    for(var i = 0; i < checkboxElements.length; i++) 
     if(checkboxElements[i].checked) 
      return true; 
    return false; 
} 
Смежные вопросы