只有在 empty/null 中执行响应函数时才给空输入值赋值 JavaScript
Give empty input values a value only when they are empty/null, when a response function is executed in JavaScript
否则,我要它们的原始值。
基本期望结果:对于此示例,键入名称以查看结果。擦除名称,我希望它说“[empty]”而不是名称(在字段下方的文本中)。如果我再次输入名称,它应该会再次显示该名称。
我在一个更大的程序中使用“span”,所以我在这个例子中使用它以防万一,不管结果应该是一样的。
编辑:没关系,这是错误的。结果不一样。当“跨度”在声明的变量中时,我需要它工作。
我遇到了一个大问题。 if/else 语句不起作用,我已经尝试了三元参数的所有变体。
我通过在声明 nameHere 后执行以下操作使它工作到一半,但是,它不会 return 在输入时具有输入的名称值:
var empty = null;
var nameHere = empty || "[empty]";
这是我现在拥有的一些示例代码:
function getResponse() {
var resultValue = "Hello my name is " + nameHere + ", nice to meet you.";
document.getElementById("result").innerHTML = resultValue;
var nameHere = (nameHere === null) ? `<span>${"[EMPTY]"}</span>` : `<span>${document.getElementById("name").value}</span>`;
}
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" onchange="getResponse()"></input>
</div>
<div id="result"></div>
请运行 以下代码段。一旦你输入一个名字,它将被打印在结果中 div,一旦你擦除,将显示 EMPTY。
function getResponse(){
let val = document.getElementById("name").value
if (!val.length) val = "[empty]";
var resultValue = "Hello my name is " + val + ", nice to meet you.";
document.getElementById("result").innerHTML = resultValue;
}
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" onInput="getResponse()"></input>
</div>
<div id="result"></div>
如果使用Element.addEventListener()
方法,可以使用事件目标获取值。
document.querySelector(`#name`).addEventListener(`change`, (event) => {
const val = event.target.value;
const name = !val.length ? `<span>[EMPTY]</span>` : `<span>${val}</span>`;
document.querySelector(`#result`).innerHTML = `Hello my name is ${name}, nice to meet you.`;
})
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" autoComplete="off">
</div>
<div id="result"></div>
否则,我要它们的原始值。
基本期望结果:对于此示例,键入名称以查看结果。擦除名称,我希望它说“[empty]”而不是名称(在字段下方的文本中)。如果我再次输入名称,它应该会再次显示该名称。
我在一个更大的程序中使用“span”,所以我在这个例子中使用它以防万一,不管结果应该是一样的。
编辑:没关系,这是错误的。结果不一样。当“跨度”在声明的变量中时,我需要它工作。
我遇到了一个大问题。 if/else 语句不起作用,我已经尝试了三元参数的所有变体。
我通过在声明 nameHere 后执行以下操作使它工作到一半,但是,它不会 return 在输入时具有输入的名称值:
var empty = null;
var nameHere = empty || "[empty]";
这是我现在拥有的一些示例代码:
function getResponse() {
var resultValue = "Hello my name is " + nameHere + ", nice to meet you.";
document.getElementById("result").innerHTML = resultValue;
var nameHere = (nameHere === null) ? `<span>${"[EMPTY]"}</span>` : `<span>${document.getElementById("name").value}</span>`;
}
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" onchange="getResponse()"></input>
</div>
<div id="result"></div>
请运行 以下代码段。一旦你输入一个名字,它将被打印在结果中 div,一旦你擦除,将显示 EMPTY。
function getResponse(){
let val = document.getElementById("name").value
if (!val.length) val = "[empty]";
var resultValue = "Hello my name is " + val + ", nice to meet you.";
document.getElementById("result").innerHTML = resultValue;
}
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" onInput="getResponse()"></input>
</div>
<div id="result"></div>
如果使用Element.addEventListener()
方法,可以使用事件目标获取值。
document.querySelector(`#name`).addEventListener(`change`, (event) => {
const val = event.target.value;
const name = !val.length ? `<span>[EMPTY]</span>` : `<span>${val}</span>`;
document.querySelector(`#result`).innerHTML = `Hello my name is ${name}, nice to meet you.`;
})
<div class="formclass">
<label for="name">Input name here</label>
<input id="name" autoComplete="off">
</div>
<div id="result"></div>