获取一个值来反映另一个值

Getting a value to mirror another value

我正在努力使 field2 显示在 field1 中输入的任何值。我正在使用 onchange 事件来执行此操作。

field1 是一个输入文本框,因此如果 field1=“Mary”,field2 应显示为“Mary”。

如果 field1 说“花生酱和果冻”,field2 应该说“花生酱和果冻”。

如果字段 1 留空,则字段 2 也应留空。

现在我有一个代码可以让 field2 复制 field1,但我必须给它一组预定值,我希望它具有代码功能,这样用户就不会局限于我提供的输入选项。

这现在很有效:

if (filed1.value=='Hello') {filed2.value='Hello'} 否则{filed2.value='';}

我需要它说的是

if (field1.value=='anything at all') {filed2.value='whatever was put in filed1'}

其他{field2.value='';}

我不确定我是否正确理解了你的问题,但我想你想验证该字段是否为空。

function mirrorValue(event){
  let val = event.target.value;

  if(val != null){
    field2.value = val;
  }
else{
   field2.value = null;
}
}

然后在你的元素上放:

onchange="mirrorValue($event)"

希望这就是你想做的。

您不需要 if 语句。相反,您可以使用 field1 的 onchange 或 keyup 事件来设置 field2 的值。这是一个使用 jQuery 的示例站点。如果您希望我将其设为标准,请告诉我 Javascript。

Html:

<!DOCTYPE html>

<html>
    <head>
        <link rel="stylesheet" href="Content/Site.css" type="text/css" />
    </head>
    <body>
        <div class="container">
            <h1>Text2 mirrors Text1</h1>
            <p>Enter some text in Text1 and Text2 will mirror the input.</p>
            <h3>Text1</h3>
            <input type="text" id="txt1" />
            <h3>Text2</h3>
            <input type="text" id="txt2" />
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script type="text/javascript" src="Scripts/Site.js"></script>
    </body>
</html>

Css 文件(仅仅因为,并非必需,您可以将其删除,只需确保删除上面 html 中的引用即可)。

/*Site.css*/

html {
    
}

body {
    
}

.container {
    width: 80%;
    margin: auto;
}

这是最重要的部分 - 更新 field2 的值以匹配 field1 的值。这是 html 文件中 body 标签元素底部引用的 Javascript 文件。

// Site.js

$(document).ready(function() {
    // $("#txt1").change(function() {
    //  $("#txt2").val(this.value);
    // });

    $("#txt1").keyup(function() {
        $("#txt2").val(this.value);
    });
});

我已经注释掉了更改事件函数,激活了 keyup 函数。这将为您提供有关值的实时更新。您可以根据需要将其更改为使用第一个函数的 onchange 事件并注释掉 keyup 函数,但在字段 1 失去焦点之前它不会更新字段 2。

我不确定您为什么要使用 if 语句来检查 field1 的值。但是,这不是必需的,如果您有特定原因想要告诉我,我会更新我的答案。

编辑

这是 javascript 页面,仅使用 Javascript:

    // document.getElementById('txt1').onchange = function() {
    //  document.getElementById('txt2').value = this.value;
    // }

    document.getElementById('txt1').onkeyup = function() {
        document.getElementById('txt2').value = this.value;

这些是相同的 javascript 功能,只是没有 jQuery。注释掉的函数只会在 field1 失去焦点后更改 field2 的文本,第二个(未注释的函数)将在每次击键 field1 时更新 field2。

如果您有任何其他问题,请告诉我。