#html #cakephp #cakephp-1.3
#HTML #cakephp #cakephp-1.3
Вопрос:
Должно быть, это что-то совершенно глупое, что я сделал или делаю, но у меня есть входные данные с атрибутом value, который просто не отображается:
<div class="input text required">
<label for="Product0Make">Make</label>
<input name="data[Product][0][make]"
type="text"
maxlength="255"
value="AC Make"
id="Product0Make">
</div>
Кто-нибудь когда-нибудь видел это раньше? У меня какая-то опечатка, на которую я просто не обращаю внимания? Чего бы это ни стоило, вот код CakePHP, который генерирует эту строку:
<?php echo $this->Form->input( 'Product.' . $index . '.make', array( 'default' => $product['Product']['make'] ) ) ?>
У меня есть небольшая форма с несколькими текстовыми вводами, 1 текстовой областью и 2 выбора. Ни одно из значений текстового ввода не отображается, но все остальное в порядке.
Любые мысли были бы оценены. Я даже не могу поверить, что мне приходится задавать этот вопрос, но это сводит меня с ума.
Комментарии:
1. Я предполагаю, что проблема останется прежней, если вы удалите все
class
файлы из этого div?2. Я могу поверить, что вы задаете этот вопрос, поскольку это очень странное поведение. Чтобы сделать это еще более загадочным, это работает на моем компьютере. Вы пытались перезагрузить свой компьютер ? 🙂
3. возможно, текст того же цвета, что и фон? (вы никогда не знаете! :D)
4. Отключите стили, отключите javascript, затем посмотрите, что произойдет. Само по себе это не имеет смысла, должно быть простое объяснение.
5. Попробуйте обновить с помощью Shift F5 (или просто нажав enter в строке URL), особенно в Firefox, это может сохранить последнее значение. Также попробуйте отключить JavaScript — возможно, какой-то фрагмент кода обрабатывает это при загрузке страницы.
Ответ №1:
Ага. Я знал, что это будет что-то за гранью глупости. Была часть Javascript, которая очищала данные. Очистка была полезна в других местах, но я не знал, что она выполняется, поэтому отследить ее было серьезной проблемой. Как только я предотвратил очистку в этом сценарии, мои значения действительно появились. Поскольку я просматривал код в web inspector, я предположил, что это будет «живой» просмотр, но я предполагаю, что это не совсем так.
Спасибо всем за вашу помощь.
Комментарии:
1. Поздравляю с решением вашей проблемы. Вы должны принять свой собственный ответ, если вы решили свой собственный вопрос.
2. Я только что сам это понял. Я думал, что схожу с ума… значение исчезло и не могло быть добавлено ни в одном сценарии. Я потратил часы, возвращаясь назад. ВАУ, мозг поджарился
3. Итак, реальная проблема заключается в том, что инструмент отладки не показывает фактическое значение элемента DOM. У меня такая же проблема, и она возникает в Chrome и FF. Как это возможно?!
4. Это ошибки, когда кто-то говорит: «Ух ты, я не дурак, и я уверен, что этого не может произойти, но это происходит».. В 99,999999% случаев проблема должна быть связана с нами, а не с IDE / браузером / etc, Который мы используем, но вы знаете! У меня также была похожая ситуация на другом языке.
5. привет, ребята.. как мне предотвратить эту очистку / посмотреть, где происходит эта очистка?
Ответ №2:
С моей стороны, это было проблемой только для Firefox.
Я решил проблему, добавив атрибут autocomplete="off"
в поле ввода.
<input type="text" value="value must appear" autocomplete="off"/>
Комментарии:
1. То же самое с chrome!
Ответ №3:
Мой был связан с AngularJS
Я пытался поместить как значение HTML, так и ng-Model, думая, что значение по умолчанию будет равно ng-Model, потому что я был слишком ленив, чтобы добавлять модель в $ scope в контроллере…
Итак, ответом было присвоение этого значения по умолчанию переменной $scope. в контроллере.
Ответ №4:
Для меня это было кэширование в браузере. Может помочь изменение строки URL или очистка истории.
Комментарии:
1. То же самое здесь, в FF 45.0
2. Вместо обновления я выбрал URL-адрес и нажал клавишу ввода на компьютере. Появилось новое значение.
Ответ №5:
Для пользователей Google, у которых может возникнуть такая же проблема: это может произойти, если у вас есть нечисловое значение в number
поле ввода типа.
Например:
<input type="number" value="<? echo $myNumberValue; ?> "/>
Это ничего не покажет, даже если Dev tools говорит, что значение есть, поскольку дополнительный пробел после ?>
делает его нечисловым. Просто удалите лишнее пространство.
Комментарии:
1. Спасибо! Это была моя проблема. У меня были знаки ‘-‘ в значении, которое я пытался вставить.
2. я тоже … я заполнял числовой ввод результатом из toLocaleString() — d’oh!
Ответ №6:
Вы путаете использование параметров ‘default’ и ‘value’ для $html-> input()?
Если вы используете 'default' => $product['Product']['make']
и $this-> data присутствует, поле не будет заполнено. Назначение параметра ‘default’ — отображать значение по умолчанию, когда отсутствуют данные формы ($this-> data).
Если вы хотите принудительно отобразить значение, вам следует вместо этого использовать параметр ‘value’. 'value' => $product['Product']['make']
Ответ №7:
Для меня это было потому, что я использовал <input>
тег, не заключая его в <form>
тег
Ответ №8:
Та же проблема возникла в electron:
Я очищал поле с помощью document.getElementById('_name').value = ''
вместо document.getElementById('_name').setAttribute('value', "")
.
Итак, я предполагаю, что простая цитата нарушила поле или у ввода есть атрибут second value hidden, потому что я мог бы переписать поля, и это не изменит значение в инспекторе
Ответ №9:
Была аналогичная проблема с входным значением, полученным через ajax, правильно установленным и проверяемым через консоль браузера, но не видимым. Проблема заключалась в другом поле ввода, имеющем тот же идентификатор, и это не было заметно из-за нескольких включенных файлов JSP, многие из которых имеют формы.
Ответ №10:
Я даже установил автозаполнение в «выкл» без результата. В итоге я поместил следующий фрагмент jquery в событие document.ready.
myForm.find("input").each((i, el) => {
$(el).val($(el).attr("value"));
});
Кроме того, это было бы эквивалентно в чистом es2015:
document.querySelectorAll("myForm input").forEach(el => {
el.value = el.getAttribute("value");
});
Если вы не используете предварительную компиляцию, такую как Babel, и вам нужна совместимость со старыми версиями браузера, измените «(el) =>» на «функция (el)». Я попробовал оба кода в своем сценарии и все сработало нормально.
Ответ №11:
Для меня проблема заключалась в том, что у меня было несколько входных данных с одинаковым идентификатором. Я мог видеть значение в поле, но чтение его через javascript дало пустое значение, потому что оно считывало другой ввод с тем же идентификатором — я был удивлен, что не было ошибки javascript, просто не мог прочитать значения, которые я мог видеть в форме.
Ответ №12:
Для меня это был неправильный формат чисел: Chrome ожидал «49.1», но ASP.NET передано «49,1», и оно просто не отобразилось!
<input type="number" value="49,1"/> // Should have been 49.1 !!!
Комментарии:
1. Опубликовано как отдельный ответ, потому что это может быть пропущено, если добавлено в качестве комментария к ответу @chakeda.
Ответ №13:
У меня была такая же проблема с @Rob Wilkerson, onchange()
очищал значение ввода с помощью ""
, поэтому я изменил на 1
. Такая глупая проблема!
HTML
<input class="form-control inputCustomDay" type="text" id="txtNumIntervalo" onkeyup="changeTipoOptions()" value="1" min="1" />
Jquery
$("#txtNumIntervalo").val(1);
Ответ №14:
Мой был связан с Angular.
Недавно я столкнулся с такой же проблемой и понял, что при использовании NgIf
для отображения шаблона указанный шаблон автоматически не использует отображение данных из переменных в компоненте.
В качестве быстрого исправления я использовал ngClass
только для того, чтобы скрыть его и отобразить.
Ответ №15:
Если кто-нибудь случайно оказался здесь, потому что их ввод с type="dateTime-local"
не отображает значение… значение должно быть в формате ГГГГ-ММ-DDThh: мм