Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery创建的文本输入设置为隐藏输入值而不覆盖所有其他属性?_Javascript_Jquery_Html_Codeigniter_Input - Fatal编程技术网

Javascript 将jQuery创建的文本输入设置为隐藏输入值而不覆盖所有其他属性?

Javascript 将jQuery创建的文本输入设置为隐藏输入值而不覆盖所有其他属性?,javascript,jquery,html,codeigniter,input,Javascript,Jquery,Html,Codeigniter,Input,基本上,由于Codeigniter的Form_Helper库的MAJOR限制,您无法保留未使用CI的Form Helper创建的输入元素的值 因为我的表单需要一个带有时间格式(HH:MM:SS)的特殊格式的文本输入,所以我必须使用jQuery来创建输入元素。这就给我留下了一个问题,如果用户输入了无效的内容,并且验证检查失败,导致页面被重新加载,那么他们将丢失之前输入的时间值 因此,为了解决这个问题,我使用CI的form_helper创建了隐藏输入,谢天谢地,它保留了输入的时间值 现在,我只需要j

基本上,由于Codeigniter的Form_Helper库的MAJOR限制,您无法保留未使用CI的Form Helper创建的输入元素的值

因为我的表单需要一个带有时间格式(HH:MM:SS)的特殊格式的文本输入,所以我必须使用jQuery来创建输入元素。这就给我留下了一个问题,如果用户输入了无效的内容,并且验证检查失败,导致页面被重新加载,那么他们将丢失之前输入的时间值

因此,为了解决这个问题,我使用CI的form_helper创建了隐藏输入,谢天谢地,它保留了输入的时间值

现在,我只需要jQuery脚本从隐藏的输入中恢复值,并将它们传递给相应的输入。可以有大量的时间输入

这是我的隐藏元素的HTML

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

可以有X数量,例如timetemp0、timetemp1、timetemp2等

因此,我现在只需要jQuery函数来复制元素值(如果设置了它)。因此,当表单第一次加载时,隐藏的输入中显然不会有任何值

我尝试了这段代码,但它似乎覆盖了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
//创建一个文本类型的输入字段,格式为“00:00:00”
变量输入=$(“”,
{
名称:'时间'+i,
值:“00:00:00”,
maxlength:'8',
尺寸:'6',
键入:“文本”
});
//此变量接收隐藏输入元素的值
var testime=document.getElementsByName('timetemp'+i);
//如果TELTIME值不同,表明在验证失败之前输入了值,则使jQuery创建的文本输入值等于该值。
if(testime[0].value!=input.value)
input.value=TENTIME[0]。值;
…剩余功能

谢谢,在您的示例中,input是一个jQuery对象,因为任何
$(…)
调用都会返回一个jQuery对象。但是,您正在尝试执行
input.value
.value
是DOM元素(底层输入框)的属性,但不是jQuery对象的属性。要设置
输入的值
,请使用相应的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)