【发布时间】:2015-01-23 04:37:39
【问题描述】:
我有一个文本字段,它使用 onblur 事件来格式化货币数字。我想运行我的 onclick 函数,在获取模糊值之前先在表单上隐藏一个 div。问题是每次我单击字段 div 并没有消失,并且当我在模糊后在公式中运行我的值时,然后不计算。我在 on blur 函数中添加了一个警报功能,并且警报消息正在循环。每次单击文本字段时,我都会寻找显示隐藏 div 功能。
<input name="txtA" type="text" id="txtA" value="<?php if(isset($_POST['calculate'])){ echo 'R '.number_format($_SESSION['salesprice'],2);}else { echo $_SESSION['salesprice']; } ?>" size="50" onblur="this.value = 'R ' + formatNumber(this.value, 0, 0, true);" onclick = "return document.getElementById('linkContainer2').innerHTML = myFunction();" />
<br />
<div id="linkContainer2">My Content</div>
<script>
function myFunction()
{
divTest = document.getElementById('linkContainer2');
if (divTest.style.display === "none") {
divTest.style.display = 'block';
}
else {
divTest.style.display = "none";
}
}
</script>
【问题讨论】:
-
不是答案,但可能会帮助您调试。警报可能正在循环,因为警报弹出窗口正在窃取焦点并触发模糊事件。如果您改为执行 console.log,我认为您不会看到循环。
-
澄清......你有一个文本框和一个div。当用户输入文本框时,您想要隐藏 div。他们编辑文本,然后当他们离开文本框时,您想格式化文本并再次显示 div?
标签: javascript forms