Javascript 等待HTML输入元素获得值
我有一个HTML输入元素Javascript 等待HTML输入元素获得值,javascript,html,Javascript,Html,我有一个HTML输入元素 <input type = "hidden" name = "MY_ELEMENT" id = "MY_ELEMENT" /> 请对此问题提出一些替代方案。您创建了错误的函数。有办法做到这一点 在HTML上使用onkeyup或onchange事件 或 在JS中为该元素创建eventListener: document.getElementById(“我的元素”).addEventListener(“更改”,函数(){ //做点什么 }); 如果您使用的是
<input type = "hidden" name = "MY_ELEMENT" id = "MY_ELEMENT" />
请对此问题提出一些替代方案。您创建了错误的函数。有办法做到这一点
或
document.getElementById(“我的元素”).addEventListener(“更改”,函数(){
//做点什么
});代码>
$(“#我的_元素”)。在(“keyup”,function()上{
//做点什么
})
编辑
表格是隐藏的。我想你可以这样做:
function hiddenValue(){
var hvalue = "some_value";
document.getElementById("hiddenForm").innerHTML = '<input type="hidden" value="' + hvalue + '" name="element" id="element" />';
//Call another function:
//Or you can pass the value to the function like thid:
//doSomething(hvalue);
doSomething();
}
function doSomething(hvalue = ''){
//do in here
}
函数hiddenValue(){
var hvalue=“某些值”;
document.getElementById(“hiddenForm”).innerHTML='';
//调用另一个函数:
//或者,您可以将值传递给thid这样的函数:
//剂量测定法(hvalue);
doSomething();
}
函数doSomething(hvalue=''){
//你在这里干什么
}
在HTML中,只需将
div
或span
与id=“hiddenForm”
放在一起,也许使用自定义setter和getter会有所帮助
var el=document.getElementById('my-element');
el._值=el值;
Object.defineProperty(el,“值”{
获取:()=>此值,
set:(newValue)=>{
log('Set:'+newValue);
//值已更改,请在此处执行操作
此值为.\u value=newValue;
}
});
//这是为了模拟稍后以编程方式设置的输入值
设置超时(()=>{
el.value='100'
console.log('编程更新的值:'+el.Value);
},2000);代码>
对于类似的问题,这里有另一个答案:@Nisarg我不认为这是所述问题的重复。。根据我所做的快速测试,oninput
和onchange
(正如链接问题中接受的答案所建议的那样)在以编程方式输入值时从未触发changed@ChiragRavindra您可以简单地使用以下命令从代码触发事件:$(“#MY_元素”).trigger(“change”)代码>。或者更好,他们可以在设置值后简单地调用函数anotherJSFunction()
。是的,但是如果我们将一个问题作为重复问题结束,则该问题应该完全由标记的问题回答。。对于新手来说,触发元素上的事件是一种选择,这一点可能并不明显。。我之所以提出这个问题,是因为以编程方式设置输入(这是这个问题的初衷)而不触发此事件实际上是对已接受答案的评论,但没有得到回复:)@ChiragRavindra我理解。我错过了以编程方式设置输入的部分。但一般来说,一个问题可以用多个重复项来结束。首先,输入元素的类型是隐藏的。其次,正如我在问题中提到的,值将由JavaScript函数设置,这可能需要一些时间。我放置的JavaScript流没有停止,这就是为什么我尝试使用while循环,以便流可以暂停,直到输入元素获得值。如果它是隐藏的,那么您不需要在那里创建表单,或者表单应该在生成隐藏值的JS函数中创建。如果创建值的函数在JS中,那么您可以调用隐藏值函数中的另一个函数。
function hiddenValue(){
var hvalue = "some_value";
document.getElementById("hiddenForm").innerHTML = '<input type="hidden" value="' + hvalue + '" name="element" id="element" />';
//Call another function:
//Or you can pass the value to the function like thid:
//doSomething(hvalue);
doSomething();
}
function doSomething(hvalue = ''){
//do in here
}