基本上由于Codeigniter的Form_Helper库的 MAJOR 限制,您无法保留未使用CI表单帮助程序创建的输入元素的值。
因为我的表单需要带有时间格式(HH:MM:SS)的特殊格式的文本输入,所以我不得不使用jQuery来创建输入元素。现在我遇到的问题是,如果用户输入的内容无效且验证检查失败导致页面重新加载,则会丢失之前输入的时间值。
因此,为了解决方法,我已经使用CI的form_helper创建了隐藏的输入,幸好保留了输入的时间值。
现在我需要的是我的jQuery脚本来从隐藏的输入中恢复值并将它们传递给相应的输入。可能会有大量的时间输入!!
这是我的隐藏元素的HTML
<input type="hidden" value="" name="timetemp0">
可能有 X 的数量,例如。 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 :(得分:0)
input
是一个jQuery对象,因为任何$(...)
调用都会返回一个jQuery对象。但是,您正在尝试input.value
。 .value
是DOM元素(底层输入框)的属性,但不是jQuery对象的属性。要设置input
的值,请使用适当的jQuery函数:
input.val(temptime[0].value);
但是,由于您使用的是jQuery,因此您也可以使用:
var temptime = $("#timetemp" + i);
if (temptime[0].val() != input.val())
而不是:
var temptime = document.getElementsByName('timetemp'+i);
if (temptime[0].value != input.value)