関数が呼び出されるたびに増加する数値で、フォームの非表示の入力フィールドを更新する Javascript 関数があります。
もともとはgetElementById()で機能していましたが、フォームを再設計する必要があったため、php 関数を使用して要素に個別の ID を割り当てることができないため、その要素に一意の名前しかありません。
そこで代わりに、Javascript のgetElementsByName()を使用して要素を変更することにしました。
これがその要素のHTMLです
<input type="hidden" value="" name="staff_counter">
これは私のJavascriptコードです:
window.onload=function()
{
//function is activated by a form button
var staffbox = document.getElementsByName('staff_counter');
staffbox.value = s;
s++;
}
関数が呼び出され、入力フィールドが値を取得していないときに、Firebug でエラーが発生しません。
getElementById() で動作していたのに、突然 getElementsByName() で動作しなくなったのはなぜですか?
- -ドキュメント内で唯一の要素であることを確認しました。
- -機能をアクティブ化するときに Firebug でエラーがないか確認しました
要素を作成するために Codeigniter から使用するコードは次のとおりです。
// staff_counter is name and the set_value function sets the value from what is
//posted so if the validation fails and the page is reloaded the form element does
// not lose its value
echo form_hidden('staff_counter', set_value('staff_counter'));
ありがとう