これは私がやったこと、またはやっていることはまったく愚かでなければなりませんが、単に表示されていない値属性を持つ入力があります:
<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つの選択がある小さなフォームがあります。テキスト入力値は表示されませんが、それ以外はすべて問題ありません。
ご意見をいただければ幸いです。私はこの質問をしなければならないと信じることさえできませんが、それはそれが私を作るのがどれほどクレイジーであるかです。
ああI knewこれは愚かなことを超えていた。データをクリアするJavascriptが少しありました。クリアリングは他の場所では役に立ちましたが、実行されていることは知りませんでしたので、追跡するのは大変な苦労でした。このシナリオでクリアを防止すると、実際に値が表示されました。 Webインスペクターでコードを見ていたので、それは「ライブ」ビューであると想定しましたが、それは完全に真実ではないと思います。
皆さん、助けてくれてありがとう。
私のものはAngularJSに関連していました
私はコントローラーの$ scopeにモデルを追加するのが面倒だったので、ng-ModelがデフォルトでValueになると考えてboth HTML値とng-Modelを入れようとしていました。 ...
したがって、答えはコントローラーの$ scope.variableにそのデフォルト値を割り当てることでした。
私にとっては、ブラウザは記憶されていました。 URL文字列を変更するか、履歴をクリアすると役立ちます。
私にとっては、Firefoxだけの問題でした。
入力フィールドに属性autocomplete="off"
を追加して解決しました。
<input type="text" value="value must appear" autocomplete="off"/>
$ html-> input()の 'default'および 'value'パラメーターの使用を混同していますか?
'default' => $product['Product']['make']
を使用していて、$ this-> dataが存在する場合、フィールドは入力されません。 'default'パラメーターの目的は、フォームデータ($ this-> data)が存在しない場合にデフォルト値を表示することです。
値の表示を強制する場合は、代わりに「値」パラメーターを使用する必要があります。 'value' => $product['Product']['make']
オートコンプリートを「オフ」に設定しても結果はありません。私は次の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のようなプリコンパイラを使用せず、古いブラウザのバージョンとの互換性が必要な場合は、「function(el)」の「(el)=>」を変更します。私のシナリオで両方のコードを試してみましたが、うまくいきました。
Ajaxを介して取得した入力値に同様の問題があり、ブラウザコンソールを介して正しく設定および検証できましたが、表示されませんでした。この問題は、同じIDを持つ別の入力フィールドであり、複数のJSPファイルが含まれており、その多くがフォームを持っているため、明らかではありませんでした。
私にとっては、<input>
タグで囲むことなく<form>
タグを使用していたためです。
私にとっての問題は、同じIDで複数の入力があったことです。私はフィールドの値を見ることができましたが、同じIDを持つ異なる入力を読んでいたのでjavascript経由でそれを読むと空の値が与えられました-私はjavascriptエラーがなく、ただ見ることができる値を読むことができなかったことに驚きましたフォーム。
同じ問題を抱えている可能性のあるGoogle社員の場合:これは、number
タイプの入力フィールドに数値以外の値がある場合に発生する可能性があります。
例えば:
<input type="number" value="<? echo $myNumberValue; ?> "/>
?>
の後の余分なスペースにより数値が非表示になるため、Devツールが値が存在すると言っても、これは何も表示しません。余分なスペースを削除するだけです。