2013-11-26 3 views
0

Скажем, у меня есть простой cfform, который выглядит следующим образом:Как я могу проверить, что переключатель был выбран с помощью встроенной проверки cfform?

<cfform id="fruitForm" method="post" action=""> 
    <cfinput type="radio" name="fruit" id="fruit_apple" value="Apple" /><label for="fruit_apple">Apple</label><br /> 
    <cfinput type="radio" name="fruit" id="fruit_orange" value="Orange" /><label for="fruit_orange">Orange</label><br /> 
    <cfinput type="radio" name="fruit" id="fruit_pear" value="Pear" /><label for="fruit_pear">Pear</label><br /> 

    <cfinput type="submit" name="submitFruit" id="submitFruit" value="Submit" /> 
</cfform> 

Как я могу использовать встроенные проверки cfform, чтобы гарантировать, что кнопки по крайней мере, один радио в этой группе выбран? Я попытался добавить к каждому из переключателей validate = "required", но он не работает. Есть ли простой способ «потребовать» одну из кнопок, которые будут выбраны с использованием проверки cfform?

+4

Никогда не используйте CFFORM, и если по каким-то причинам вы не когда-либо использовать встроенный в проверке, и если по какой-то причине вы делаете, вы заслуживаете все, что боль, которую вы получите от него. –

+0

@ScottStroz - Я слышал это раньше, но не понимаю почему. Для краткой простой формы вам нужно простую простую проверку (я говорю 1 обязательное поле и 1 числовое или что-то действительно простое), почему вы не можете использовать cfform и пропустить собственный код js? – froadie

+2

Потому что 'cfform' - это икру сатаны, и каждый раз, когда кто-то ее использует, умирает котенок. Серьезно, хотя даже для одной формы поля я бы не использовал 'cfform' или встроенную проверку, и основной причиной является то, что она не будет использоваться в другом месте, и я думаю, что в вашем приложении должна быть некоторая последовательность. КАЖДАЯ форма должна быть проверена и сохранена с использованием тех же процессов, в противном случае управление приложением становится затруднительным. –

ответ

7

Сделайте себе одолжение и не используйте cfform для проверки. Напишите свою собственную проверку на сервере и на стороне клиента, но в соответствии с cfinput documentation, если вы добавите атрибут required="true" для каждого переключателя, ColdFusion выполнит проверку на стороне клиента.

Примечание: Пользователь может обойти эту проверку и отправить форму без проверки переключателя. Вы также должны иметь проверку на стороне сервера.

<cfform id="fruitForm" method="post" action=""> 
    <cfinput type="radio" name="fruit" id="fruit_apple" value="Apple" required="true" /><label for="fruit_apple">Apple</label><br /> 
    <cfinput type="radio" name="fruit" id="fruit_orange" value="Orange" required="true" /><label for="fruit_orange">Orange</label><br /> 
    <cfinput type="radio" name="fruit" id="fruit_pear" value="Pear" required="true" /><label for="fruit_pear">Pear</label><br /> 

    <cfinput type="submit" name="submitFruit" id="submitFruit" value="Submit" /> 
</cfform> 
1

Это работает для меня:

<cfform action="abc.cfm" method="post"> 
<cfinput type="radio" required="yes" message="pick something" name="x" value="1">radio 1 
<cfinput type="radio" required="yes" message="pick something" name="x" value="">radio 2 
<input type="submit" /> 
</cfform> 

На самом деле, вам не нужно даже атрибут сообщения. Он все равно будет проверяться.

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