这是一个我似乎无法解决的奇怪问题。在WordPress网站上,我通过短代码在网站上输出了几种表格(登录,注册和其他)。提交表单后,他们的数据将通过侦听$ _POST数据的“init”挂钩进行处理。
请注意,该网站正在运行WordPress,但我认为这不是WordPress问题,这就是我在这里发帖的原因。
在IE 9中提交表单时,单击“提交”时将清除所有字段的值。例如,假设有一个名为“username”的输入字段,字段的值设置为“johndoe”;当通过除IE 9(包括7和8)之外的任何浏览器提交表单时,数据如下所示:
$_POST['username'] = 'johndoe'
完全符合预期。
但是,当表单与IE9一起提交时,它会出现如下:
$_POST['username'] = ''
据我所知,它发生在网站上的每一个表格中。
例如,我构建的自定义登录表单如下所示:
<form id="re_login_form" class="re_login_form" action="" method="post">
<fieldset>
<label for="re_user_Login"><?php _e('Username', 're'); ?></label>
<input name="re_user_login" id="re_user_login" class="required" type="text" title="<?php _e('Username', 're'); ?>"/>
</fieldset>
<fieldset>
<label for="re_user_pass"><?php _e('Password', 're'); ?></label>
<input name="re_user_pass" id="re_user_pass" class="password required" type="password"/>
</fieldset>
<fieldset class="form-action">
<input type="hidden" name="refalf_redirect" value="<?php echo $redirect; ?>"/>
<input type="hidden" name="re_login_nonce" value="<?php echo wp_create_nonce('re-login-nonce'); ?>"/>
<input id="re_login_submit" type="submit" class="button re_submit" value="<?php _e('Log In', 're'); ?>"/>
<p class="forgot-password"><a href="<?php echo wp_lostpassword_url( get_permalink() ); ?>" title="<?php _e('Lost Password', 're'); ?>"><?php _e('Lost Password?', 're'); ?></a></p>
</fieldset>
</form>
其中一个特别令人感兴趣的事情是,在IE9中单击提交时,字段可以清楚地清除它们的值。这也就像提交按钮在IE9中触发清除字段的东西一样。
有人有什么想法吗?
答案 0 :(得分:3)
我能够通过为每个输入字段赋予占位符属性来解决此问题。我仍然不知道为什么它会起作用,但是当占位符存在时,一切都运行良好。
答案 1 :(得分:1)
答案 2 :(得分:0)
我刚刚经历了一些类似的案例:IE9仅部分发布了一个表单;一些价值在提交后被清除。我测试了使用IE9,IE10,IE11,Chrome36,FF31提交表单,除IE9外,所有其他工作正常。
所以我检查了标记,并且在主窗体页面中嵌套了另一个窗体,它实际上没有任何输入字段或提交按钮,它是由一些自动模板/编辑器软件创建的。
删除这些额外的表单节点后,IE9开始提交所有字段。我使用ASP.NET 4.5 MVC4。