2011-08-06 3 views
0

基本的に、CodeigniterのForm_Helperライブラリには、MAJORという制限があるため、CIのフォームヘルパーで作成されていない入力要素の値を保持することはできません。他のすべての属性をオーバーライドせずに、jQueryによって作成されたテキスト入力を隠し入力値に設定しますか?

私の書式は、に特別な書式のテキスト入力(HH:MM:SS)が必要なため、入力要素を作成するためにjQueryを使用する必要がありました。今では、ユーザーが何か無効なものを入力し、検証チェックが失敗してページが再ロードされると、前に入力した時間値が失われるという問題が残されています。

回避策を作るために、私は感謝して入力された時間値を保存するCIのform_helperで隠された入力を作成しました。

私の必要なのは、隠れた入力から値を復元し、対応する入力に渡すためのjQueryスクリプトです。大量の時間入力があります!

これは、例えば、それらのX量が存在することができ、私の隠された要素

<input type="hidden" value="" name="timetemp0"> 

ためのHTMLです。 timetemp0、timetemp1、timetemp2など

これですべての要素値をコピーするjQuery関数が必要です。IFが設定されています。だから、フォームが最初に読み込まれても、明らかに隠れた入力には値がありません。

このコードを試しましたが、jQueryの書式設定を上書きしているようです。あなたの例では

 //creates an input field of text type formatted with a value of "00:00:00" 
     var input = $("<input>", 
      { 
       name: 'time'+i, 
       value: '00:00:00', 
       maxlength: '8', 
       size: '6', 
       type: 'text' 
      }); 

      //this variable recieves the value of the hidden input element 
      var temptime = document.getElementsByName('timetemp'+i); 


//if the temptime value is different indicating that a value had been entered before validation failed then make the jQuery created text inputs value equal that. 
      if (temptime[0].value != input.value) 
      input.value = temptime[0].value; 

    ..rest of function 

おかげ

答えて

0

input任意の$(...)呼び出しはjQueryオブジェクトを返すため、jQueryオブジェクトです。しかし、あなたはinput.valueをしようとしています。 .valueは、DOM要素(基になる入力ボックス)のプロパティですが、jQueryオブジェクトではありません。あなたはjQueryのを使用しているので、あなたも使用することができ、しかし

input.val(temptime[0].value); 

var temptime = $("#timetemp" + i); 

if (temptime[0].val() != input.val()) 

の代わり:

var temptime = document.getElementsByName('timetemp'+i); 

if (temptime[0].value != input.value) 
inputの値を設定するには、appopriate jQueryの関数を使用します
関連する問題