手动输入后javascript输入值无更新

时间:2018-03-17 17:19:10

标签: javascript input

如果我在t1中输入内容,则更改t2 但如果t2已经有手动输入,则不再更改(反之亦然)。

如何使用javascript更改已经手动输入的输入字段(无需重新加载页面!)?

<!DOCTYPE html>
<html>
<body>

inputfields are not changed, if they have/had an input already!<br />
<br />
t1: <input type="text" id="t1" value="" onchange="upd1()"><br /><br />
t2: <input type="text" id="t2" value="" onchange="upd2()">

<script>
function upd1() {
  t2.setAttribute("value", "changed");
  return true;
}

function upd2() {
  t1.setAttribute("value", "changed");
  return true;
}
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

您还可以保存每个字段的旧值以继续编辑。此外,它每次都会在另一个字段上显示编辑状态。对用户来说会更舒服。

&#13;
&#13;
inputfields are not changed, if they have/had an input already!<br />
<br />
<input type="text" id="t1" value="" onClick="renderFirstEl()" onInput="upd1()"><br /><br />
<input type="text" id="t2" value="" onClick="renderSecondEl()" onInput="upd2()">

<script>
    let firstElValue = '';
    let secondElValue = '';

    function upd1() {
        let el = document.querySelector('#t2');
            el.value = 'changed';

        return true;
    }

    function upd2() {
        let el = document.querySelector('#t1');
            el.value = 'changed';

        return true;
    }
    
    function renderFirstEl() {
        let el = document.querySelector('#t1');

        secondElValue = document.querySelector('#t2').value;
        el.value = firstElValue;
    }
    
    function renderSecondEl() {
        let el = document.querySelector('#t2');

        firstElValue = document.querySelector('#t1').value;
        el.value = secondElValue;
    }
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

简单的答案是使用这个:

function upd1() {
  t2.value = 'changed';
  return true;
}

function upd2() {
  t1.value = 'changed';
  return true;
}
t1: <input type="text" id="t1" value="" onchange="upd1()"><br /><br />
t2: <input type="text" id="t2" value="" onchange="upd2()">

键入其中一个输入后,值会更改,然后按Enter键。

因为如上所述:https://www.w3schools.com/jsref/met_element_setattribute.asp

“setAttribute()方法将指定的属性添加到元素,并为其指定值。 如果指定的属性已存在,则只设置/更改值。“