Я работаю над добавлением флажка на мою страницу регистрации пользователя, чтобы войти в мой список электронной почты, и я не уверен, что правильный способ пометить флажок по умолчанию. Это то, что у меня есть до сих пор:
// Checkbox to join list add_action( 'register_form', 'email_opt_in' ); function email_opt_in() { ?> <p> <label style="font-size:13px;"> <input type="checkbox" name="email_opt_in" id="email_opt_in" class="input" value="1" <?php checked( $_POST['email_opt_in'], 1 ); ?> tabindex="99" style="width:12px;padding:0;margin: 0 3px 0 0;font-size: 13px;" /> Join our famous e-mail list </label> </p> <br/><?php }
Я использую проверенный, который отлично работает, но я хочу, чтобы флажок был установлен по умолчанию. Добавляет check checked="checked"
чтобы input
правильную вещь, чтобы сделать, или есть лучший способ сделать это?
Заранее спасибо!
Я должен добавить скрытое поле ввода с тем же именем перед флажком:
<input type="hidden" name="email_opt_in" value="0" />
Поскольку формы обрабатываются последовательно, вы получите «0», если форма была отправлена, но флажок не был отмечен (вместо того, чтобы ничего не получать).
Затем предположим, что флажок установлен, если форма не была отправлена или она отправлена, и установлен флажок:
$checked = !isset($_POST['email_opt_in']) || (isset($_POST['email_opt_in']) && $_POST['email_opt_in']);
Позже:
... <?php checked($checked); ?>
Вся идея состоит в том, чтобы сохранить неконтролируемое состояние флажка в случае ошибки ввода, поэтому пользователю не нужно проверять его снова, если он не захочет в первом представлении.
Извините за этот долгий и скучный ответ на этот простой вопрос 🙂
Вам необходимо передать фактическое текущее значение опции checked()
, а не значение $_POST
.
Как вы регистрируете свои варианты и как вы ссылаетесь на них в своей форме?
Поскольку вы хотите, чтобы флажок установлен по умолчанию, в HTML нет способа, а не checked="checked"
в HTML.