Господа как добавить к input фильтра onkeyup="this.value = this.value.replace(/[^0-9]/, '')"
Есть вот такой:
<?php<input class="form-control form-text" type="text" id="edit-field-stats-value" name="field_stats_value" value="" size="30" maxlength="128">?>
А нужно вот такой
<?php<input onkeyup="this.value = this.value.replace(/[^0-9]/, '')" class="form-control form-text" type="text" id="edit-field-stats-value" name="field_stats_value" value="" size="30" maxlength="128">?>
Комментарии
В template.php текущей темы:
UPD
if($form['#id'] == 'ID_ФОРМЫ'){
$form['ИМЯ_ПОЛЯ']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
Чет не выходит, делаю
if($form['#id'] == 'views_exposed_form_status_page'){
$form['edit_field_stats_value']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
из
<div class="views-exposed-widgets clearfix">
<div id="edit-field-stats-value-wrapper" class="views-exposed-widget views-widget-filter-field_stats_value">
<label for="edit-field-stats-value">
Введите номер договора для получения статуса </label>
<div class="views-widget">
<div class="form-item form-item-field-stats-value form-type-textfield form-group"><input class="form-control form-text" type="text" id="edit-field-stats-value" name="field_stats_value" value="" size="30" maxlength="128"></div> </div>
</div>
<div class="views-exposed-widget views-submit-button">
<button type="submit" id="edit-submit-status" name="" value="Применить" class="btn btn-info form-submit">Применить</button>
</div>
</div>
</div>
</div></form>
Заметил опечатку alert на alter но тогда вообще сайт падает
1. Исправьте $form['#id'] == 'views_exposed_form_status_page' на $form['#id'] == 'views-exposed-form-status-page'
2. $form['edit_field_stats_value'] - проверьте для того ли поля добавляете. Используйте devel.
del
Что то я смотрел смотрел, пробовал пробовал ничего не вышло...
http://prntscr.com/927otn
http://prntscr.com/927owr
_form_alert точно не _form_alter ?
Что то у меня вчера... Наверно переработал. hook_form_alter
if($form['#id'] == 'views-exposed-form-status-page') {
$form['edit-field-stats-value']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
падает в белый экран
if($form['#id'] == 'views-exposed-form-status-page') {
$form['edit_field_stats_value']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
Проверьте, "edit_field_stats_value" должно соответствовать идентификатору фильтра (филдсет "ЕЩЕ" в самом низу настроек раскрытого фильтра).
В самом низу где еще field_stats_value и того
if($form['#id'] == 'views-exposed-form-status-page') {
$form['field_stats_value']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
Падает в белый экран, включил вывод ошибок:
Fatal error: Cannot redeclare amp_form_alter() (previously declared in /home/mag/public_html/site.ru/sites/all/themes/amp/template.php:15) in /home/mag/public_html/site.ru/sites/all/themes/amp/template.php on line 30
Посмотрел на 15 строку а там плейсхолдер
if(in_array($form_id, array( 'webform_client_form_97','webform_client_form_99'))) {
foreach ($form["submitted"] as $key => $value) {
if (in_array($value["#type"], array("webform_number"))) {
$form["submitted"][$key]['#attributes']["placeholder"] = t("+7 ( ... ) ... .. ..");
}
}
}
}
Убрал его и все заработало !
Что в нм не так то теперь?
2 раза вызывали функцию amp_form_alter ?
Нужно выполнять внутри уже вызванной функции:
<?php
function amp_form_alter(&$form, &$form_state, $form_id) {
if(in_array($form_id, array( 'webform_client_form_97','webform_client_form_99'))) {
foreach ($form["submitted"] as $key => $value) {
if (in_array($value["#type"], array("webform_number"))) {
$form["submitted"][$key]['#attributes']["placeholder"] = t("+7 ( ... ) ... .. ..");
}
}
}
if($form['#id'] == 'views-exposed-form-status-page') {
$form['field_stats_value']['#attributes'] = array('onkeyup' => array('this.value = this.value.replace(/[^0-9]/, \'\')'));
}
}
?>
Да два раза!
Спасибо тебе добрый человек за помощью твою и терпение
Удачи!