Javascript IE10中文本框的动态对齐不起作用

Javascript IE10中文本框的动态对齐不起作用,javascript,internet-explorer-10,Javascript,Internet Explorer 10,我正在尝试动态更改textbox的对齐方式,但它不起作用。但若我在小部件的负载上让步,那个就可以了 代码;HTML <input type="text" id="text1" style="text-align:center;width:80px" value="abc"> <input type='button' id="btn" value="click"> 您可以使用:-ms value伪元素修复此错误。您需要添加一些填充,以便触发重新绘制。由于添加填充的是伪

我正在尝试动态更改textbox的对齐方式,但它不起作用。但若我在小部件的负载上让步,那个就可以了

代码;HTML

 <input type="text" id="text1" style="text-align:center;width:80px" value="abc">
 <input type='button' id="btn" value="click">

您可以使用
:-ms value
伪元素修复此错误。您需要添加一些填充,以便触发重新绘制。由于添加填充的是伪元素而不是实际元素,因此它看起来不会更改输入的实际宽度。它还具有不适用于非IE浏览器的优点

CSS:

JS:


当然,您希望将text1元素存储在一个变量中,这样就不会每次都调用getElementById。添加
文本对齐:左也比直接调整样式对象更好。

试试这段代码。希望它能为您提供一个好的解决方案。 我将宽度设置为零,然后使用计时器将宽度设置为上一个值,使其再次呈现

HTML:


试试这段代码,它在IE中工作:

Javascript:


(function($) {
    $('.btn-text-align').on('click', function(){
        $obj= $(this);
        rule= $obj.attr('data-rule');
        ruleValue= $obj.attr('data-value');
        textElement= $(':input[name="text"]')[0];
        textElement.style[rule]= ruleValue;
        width= textElement.style['width'];
        textElement.style['width']= '0px';
        timerElement = setInterval(function () {
            textElement.style['width']= width;
            clearInterval(timerElement);
        }, 10);
    })
})(jQuery);
document.getElementById('btn').onclick = function(){
    console.log(document.getElementById('text1').style.textAlign);
    document.getElementById('text1').style.textAlign = "left";
 }

试试
document.getElementById('text1').style.textAlign=“left”谢谢大卫,是的,在那行代码之前我也试过你的建议。但是我没有工作。看起来视图没有被刷新,因为它报告了正确的值。我唯一能改变它的方法就是在设置textAlign后调整宽度。不幸的是,如果您将其设置回原始宽度,它将不再修复它。即使你把宽度变小,并用额外的填充物来弥补。不幸的是,我没有IE浏览器来测试你的代码。
document.getElementById('text1').className += "update";
<div>
<textarea name="text">WANDER LUST</textarea>
</div>
<div>
<button class="btn-text-align" data-rule="textAlign" data-value="left">Left</button>
<button class="btn-text-align" data-rule="textAlign" data-value="center">Center</button>
<button class="btn-text-align" data-rule="textAlign" data-value="right">Right</button>
</div>

(function($) {
    $('.btn-text-align').on('click', function(){
        $obj= $(this);
        rule= $obj.attr('data-rule');
        ruleValue= $obj.attr('data-value');
        textElement= $(':input[name="text"]')[0];
        textElement.style[rule]= ruleValue;
        width= textElement.style['width'];
        textElement.style['width']= '0px';
        timerElement = setInterval(function () {
            textElement.style['width']= width;
            clearInterval(timerElement);
        }, 10);
    })
})(jQuery);
document.getElementById('btn').onclick = function(){
    console.log(document.getElementById('text1').style.textAlign);
    document.getElementById('text1').style.textAlign = "left";
 }