【发布时间】:2011-02-09 13:30:18
【问题描述】:
肯定有一个明显的答案,但我不知道。我正在使用 JQuery .load() 动态加载页面在“已加载”页面上有一个带有表单元素的表单,例如input type="number" (HTML5)。
如果我slideToggle() 表单元素总是恢复到input type="text" 有什么原因,但是如果我toggle() - (只是toggle())元素保持“真”同样如果我添加@987654327 @表单元素总是恢复为input type="text"
好的。 “page1”上的 HTML 代码如下所示:
<form method="post" id="frmcreate">
<ol></ol>
<input type="submit" id="testit" />
</form>
它像这样加载到这里 - 是的 doc ready() 等等。
$('ul#fieldtypes li a').click(function(){
var id_timestamp = new Date().getTime();
var id = $('.inputlength').length;
$( "#frmcreate ol" ).append('<li id='+id_timestamp+' class="inputlength"></li>');
$('#'+id_timestamp).load('test1.php?y='+id);
return false;
});
这是加载的表单
Type <input type="text" name="fieldmeta<?php echo $y; ?>[type]" /> <?php echo $error; ?>
<br/>
Name <input type="text" name="fieldmeta<?php echo $y; ?>[name]" value="<?php echo $y; ?>" /> <?php echo $error; ?>
<br/>
<div class="optoggle">OPTIONS</div>
这些是从另一个页面加载的“选项”:
<li>Cols<input type="number" name="fieldmeta<?php echo $y; ?>[cols]" /> <?php echo $error; ?></li>
<li>Rows<input type="number" name="fieldmeta<?php echo $y; ?>[rows]" /> <?php echo $error; ?></li>
<li>Size<input type="number" name="fieldmeta<?php echo $y; ?>[size]" /> <?php echo $error; ?></li>
它们是这样加载的:
$('.optoggle').live('click',function(){
$(this).next('div').toggle();
});
【问题讨论】:
-
您是否在不同的浏览器中检查过这种行为?一样吗?
-
是的,但现在只是“双重检查”
-
有兴趣的演示:jsfiddle.net/KmMBd
-
@Matt 感谢演示 - 在 Chrome 上它仍然是我的“数字”。
-
@Matt:你的演示不是 ajax 的。不是准确的复制。
标签: jquery html toggle slidetoggle