IE 9 Clears Form Fields

时间:2012-03-31 作者:Pippin

这是一个我似乎无法解决的非常奇怪的问题。我有几个表单(登录、注册和其他)通过短代码输出到网站上。提交表单时,通过“init”钩子处理表单数据,该钩子侦听$\\u POST数据。

在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中单击submit时,字段的值会明显清除。这也就好像提交按钮触发了IE9中清除字段的某些内容。

有人有什么想法吗?

2 个回复
最合适的回答,由SO网友:Pippin 整理而成

已确认。将占位符添加到没有预定义值的每个输入可以解决问题。我不完全确定,但我相信这是因为hte与modernizer的结合。js。

SO网友:Sagive

很可能是您的internet explorer 9有问题,或者是您安装的特定插件。。。

请尝试从internet explorer中删除加载项,然后重试。发现一些关于divx/xvid插件出于某种原因可能会这样做的言论

Additional Reading:

  1. Internet Explorer 9 - Problem with forms and page scripts
  2. Problem with buttons in web pages using after installing IE9
也在this 对话有人说,带有name属性的按钮可能会导致按钮卸载附加到表单的变量。

希望这能帮助。。。删除插件帮助了我;)<干杯,萨吉夫。

结束