Настройка, проверка и поддержка переключателей - PullRequest
1 голос
/ 30 июля 2011

В форме есть переключатели для выбора пользователем:

<li>
<label for="full professor"><span class="required">&##8727;</span>Is the candidate a full professor?</label>
    <input type="radio" name="fullProfessor" value="yes" tabindex="4" />Yes<input type="radio" name="fullProfessor" value="no" tabindex="5" checked/>No                                            </li> 

<li>
<label for="more than ten"><span class="required">&##8727;</span>Has the candidate been here for more than 10 years?</label>
<input type="radio" name="moreThanTen" value="yes" tabindex="6" />Yes<input type="radio" name="moreThanTen" value="no" tabindex="7" checked/>No                         </li> 

 <li>
<label for="past nominee"><span class="required">&##8727;</span>Has the candidate been nominated for this award in the last 3 years?</label>
<input type="radio" name="pastNominee" value="yes" tabindex="8" />Yes<input type="radio" name="pastNominee" value="no" tabindex="9" checked/>No                         </li> 

Я не уверен, как их выставить. Типичный код, который я использую:

    <cfparam
    name="FORM.fullProfessor"
    type="string"
    default=""
    />

Является ли строка типа, даже если она не принимает строку как текстовое поле?

Для подтверждения переключателя используется:

        <!--- Validate campus address. --->
    <cfif NOT Len( FORM.fullProfessor)>
        <cfset ArrayAppend(
            arrErrors,
            "Error message here."
            ) />
    </cfif>

Наконец, поддерживая выбор пользователей после проверки страницы, как я могу обеспечить это?

<cfif isDefined(form.fullProfessor) selected="yes">?

Спасибо.

Ответы [ 3 ]

1 голос
/ 30 июля 2011

Если вы используете Да и Нет, вы можете обращаться с ними как с логическими значениями.

<cfparam
name="FORM.fullProfessor"
type="string"
default=false
/>

и

 <cfif NOT FORM.fullProfessor>
    <cfset ArrayAppend(
        arrErrors,
        "Error message here."
        ) />
</cfif>

и

<cfif form.fullProfessor selected="yes">

Вы также можете использовать платформу для проверки ваших форм, я настоятельно рекомендую проверить это: http://www.validatethis.org/

0 голосов
/ 31 июля 2011

использовать structkeyexists существующих функций CF

<input type="radio" name="fullProfessor" value="yes" tabindex="4" <cfif structkeyexists(form.fullProfessor) AND form.fullProfessor EQ "true">checked</cfif> />
0 голосов
/ 30 июля 2011

Является ли строка типа, даже если она не принимает строку типа текстовое поле будет?

type - это то, какое значение вы ожидаете FORM.fullProfessor (дата, число, строка и т. Д.). Поскольку значения ваших переключателей равны «да» или «нет», технически вы можете использовать либо type="string", либо type="boolean".

сохранение выбора пользователя после проверки страницы

Поскольку вы уже используете cfform , вы можете использовать <cfform preserveData="yes" ..>. (Примечание. Форма должна быть отправлена ​​на ту же страницу). Это сохранит состояние большинства полей формы. В качестве альтернативы вы можете воспользоваться тем, что значения переключателей являются логическими, и использовать его для установки состояния кнопки checked.

<cfparam name="FORM.fullProfessor" type="boolean" default="no" />
<cfform>
    <cfinput type="radio" name="fullProfessor" checked="#FORM.fullProfessor#" value="Yes"> yes
    <cfinput type="radio" name="fullProfessor" checked="#not FORM.fullProfessor#" value="no"> no
    <input type="submit">
</cfform>

To validate the radio button

Я не уверен, насколько полезной была бы здесь проверка. Вы можете просто установить по умолчанию что-то разумное, например no, и оставить все как есть. Зависит от формы.

...