Входное значение не отображается. Как это возможно? - PullRequest
35 голосов
/ 24 апреля 2011

Это должно быть что-то совершенно глупое, что я сделал или делаю, но у меня есть вход с атрибутом значения, который просто не отображается:

<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 выборками.Ни одно из значений ввода текста не отображается, но все остальное в порядке.

Любые мысли будут оценены.Я даже не могу поверить, что мне нужно задать этот вопрос, но вот как это безумие, это меня бесит.

Ответы [ 10 ]

87 голосов
/ 25 апреля 2011

Argh. Я знал , что это будет нечто глупое. Был немного Javascript, который очищал данные. Очистка была полезна в других местах, но я не знал, что она выполнялась, поэтому было очень трудно выследить. Как только я предотвратил очистку в этом сценарии, мои ценности фактически появились. Поскольку я просматривал код в веб-инспекторе, я предполагал, что это будет «живое» представление, но, думаю, это не совсем так.

Спасибо всем за помощь.

12 голосов
/ 14 июня 2016

Мой был связан с AngularJS

Я пытался поместить оба значение HTML и модель ng, полагая, что модель ng по умолчанию будет иметь значениеЗначение, потому что мне было лень добавлять модель в область $ в контроллере ...

Поэтому ответом было присвоение этого значения по умолчанию переменной $ scope.variable в контроллере.

4 голосов
/ 16 октября 2015

Для меня это браузер запомнился.Может помочь изменение строки URL или очистка истории.

1 голос
/ 14 декабря 2018

С моей стороны, это была проблема только для Firefox.

Я решил добавить атрибут autocomplete="off" в поле ввода.

<input type="text" value="value must appear" autocomplete="off"/>
1 голос
/ 24 апреля 2011

Вы путаете использование параметров 'default' и 'value' для $ html-> input ()?

Если вы используете 'default' => $product['Product']['make'], а данные $ this->В настоящее время поле не будет заполнено.Назначение параметра 'default' состоит в отображении значения по умолчанию, когда отсутствуют данные формы ($ this-> data).

Если вы хотите принудительно отобразить значение, вам следует использовать значение 'valueвместо параметра.'value' => $product['Product']['make']

0 голосов
/ 28 февраля 2019

Для меня проблема заключалась в том, что у меня было несколько входов с одинаковым идентификатором.Я мог видеть значение в поле, но чтение его через javascript давало пустое значение, потому что он читал другой ввод с тем же идентификатором - я был удивлен, что не было ошибки javascript, просто не смог прочитать значения, которые я мог видеть вформа.

0 голосов
/ 23 февраля 2019

Для меня это было потому, что я использовал тег <input>, не заключая его в тег <form>

0 голосов
/ 21 февраля 2019

Я даже отключил автозаполнение без результата.Я закончил тем, что поместил следующий фрагмент 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) =>" на "function (el)".Я попробовал оба кода в моем сценарии и работал нормально.

0 голосов
/ 11 июля 2018

Была похожая проблема с входным значением, полученным через ajax, правильно установленным и проверяемым через консоль браузера, но не видимым. Проблема заключалась в другом поле ввода, имеющем тот же идентификатор, и оно не было очевидно из-за нескольких включенных файлов JSP, многие из которых имели формы.

0 голосов
/ 31 мая 2018

Для Googler, у которых может быть та же проблема: это может произойти, если у вас есть нечисловое значение в поле ввода типа number.

Например:

<input type="number" value="<? echo $myNumberValue; ?> "/>

Это ничего не покажет, даже если инструменты Dev сообщают, что значение есть, поскольку дополнительный пробел после ?> делает его не числовым. Просто удалите лишнее пространство.

...