これがあなたの質問への答えです..これがすべての人に役立つことを願っています.. @Macke - 送信後に値を設定するためのあなたのアプローチは本当に良いですが、フォームに多くの要素がある場合.. 1000としましょう-ASでは苦痛になります*..
このスクリプト タグをHEAD
ページのタグに追加します -
<script language="javascript" type="text/javascript">
var obj = JSON.parse('<?= json_encode($_REQUEST) ?>');
console.log(obj);
function __setPostBackValue(element){
if(obj.length <= 0) return;
var type = element.type;
var fval;
console.log('Processing...'+ element.name);
try{
eval('fval = obj'+'.'+element.name);
}
catch(ex){
}
if(type == 'text'){
element.value = fval;
}
if(type == 'checkbox'){
if(fval != undefined)
element.setAttribute("checked","on");
}
if(type == 'radio'){
if(fval != undefined && element.value == fval)
element.setAttribute("checked","on");
}
}
</script>
そしてページの一番下に、はいページの一番下(本文が終わる前)に別のスクリプトタグを追加します-
<script language="javascript" type="text/javascript">
var fields = document.getElementsByTagName('input');
for(var i=0;i<fields.length;i++){
__setPostBackValue(fields[i]);
}
</script>
それは何をしますか?フォームを送信するvar obj = JSON.parse('<?= json_encode($_REQUEST) ?>');
と、Javascript で使用できるローカル JSON オブジェクトが作成され、ページの最後に追加したスクリプトが作成されます。すべての要素をループし、__setPostBackValue
関数を呼び出します。Javascriptで要素の値を設定しているところ。
これは少しトリッキーですが、うまくいきます..!!
PS: 私のページにはラジオ ボタンがありませんでしたが、あれば簡単に追加できます。
-パレシュ・ラソッド