我正在尝试使用动态表单创建应用程序。我想为这些表单进行屏幕计算,但我很挣扎。我可以让JS在静态网页中工作,现在我试图让这个逻辑适用于动态页面。仅在创建第一个Javascript函数中创建的表单后调用第二个Javascript函数
我相信我所追求的是屏幕上的计算JS函数只有在窗体创建后才能调用。然而,我可能只是不明白的HTML/JS的基础 - 我会让你决定...
原始页面,当下拉改变“表格”创建(基本上 - 下拉变化,加载使page2.php到的div“ForecastForm”,然后使用输入框&的div page2.php中,所述第二功能JS的目的是提供在屏幕上的计算):
<div>Top</div>
<br></br>
<script>
function GetForm(str) {
if (str == "") {
document.getElementById("ForecastForm").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("ForecastForm").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","Page2.php?text="+str,true);
xmlhttp.send();
}
}
</script>
<select id="SiteDD" onchange="GetForm(this.value)">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<div id="ForecastForm"><b></b></div>
<script type="text/javascript">
for(var x=1; x<3; x++){
let num = "num"+x;
let input = "input"+x;
let total = "total"+x;
let element = "element"+x;
let inputelement = "inputelement"+x;
let thesum = "thesum"+x;
element = document.getElementById(num),
inputelement = document.getElementById(input),
thesum = document.getElementById(total);
document.getElementById(input).onchange = function() {
thesum.innerHTML = parseInt(element.innerHTML) + parseInt(inputelement.value);
};
};
</script>
<br></br>
<div>Bottom</div>
和“表格”那得到加载:
<div id="num1">11</div>
<input type=number value=2 id="input1">
<div id="total1">0</div>
<br>
<br>
<div id="num2">11</div>
<input type=number value=2 id="input2">
<div id="total2">0</div>
任何帮助或建议将大大a ppreciated。谢谢。
对不起,我给了一个坏榜样。下拉列表中选择的内容对计算没有任何限制 - 它可能是a,b,c等,但是在创建的表单上的两个计算仍然需要发生。目前使用你的代码,唯一的计算依赖于选择的内容。即 - 如果选择2,则只发生input2 + num2 = total2。当选择1时,只有input1 + num1 = total1发生等。这就是为什么我有for循环,因为表单中计算的数量在实际中会有所不同。感谢你的帮助,这是你第二次帮助我 - 欠你一大笔时间! – shubbard
我设法让它工作。感谢您花时间浏览您的代码,真正帮助我找到答案。如果您感兴趣,我更改为以下代码:function calculate(){var x = 1; x <3; x ++} {document.getElementById('total'+ x).textContent = + document。 getElementById('num'+ x).textContent + + document.getElementById('input'+ x).value; } } document。onchange = function(e){//检查这个事件是否被我们想要的输入元素触发// //收听。如果是这样,请调用计算函数: calculate(); };再次感谢 – shubbard
啊是的,我认为'x'的值对应于所选的选项。但很好,你发现如何适应你的需求! – trincot