我正在写一个html页面来从PLC读取和写入数据参数。 我的代码主要由很多输入标签组成,用于插入值和大量的span标签从PLC获取值:
<span style="margin-left:8em;"><b>Set Attuale: </b><input id="iOra1ON3" style="width:15%;text-align:right;border:none"></input></span>
...
<span id="Ora1On3Span" class="isamod_dint" style="display:none">ORA1ON[3] A 0</span>
在标签内部,我想使用jscript函数从输入中获取值并将其传递给span(内部连接到PLC)。
<script type="text/javascript">
$(document).ready(function() {
$('#iOra1ON3').timepicker({
showMinutes:false,
onSelect:
function (){
var oSpanOra = document.getElementById("Ora1On3Span");
var oInputOra = oSpanOra.getElementsByTagName("input");
oInputOra[0].value = parseInt($("#iOra1ON3")[0].value);
var oButtonOra1 = oSpanOra.getElementsByTagName("button");
oButtonOra1[0].click();
}
});
});
</script>
我试图写一个函数SetTime来做同样的事情,而不重复代码。
function SetTime(OraSpan,Input)
{
var oSpanOra = document.getElementById("OraSpan");
var oInputOra = oSpanOra.getElementsByTagName("input");
oInputOra[0].value = parseInt(document.getElementById("Input").value);
var oButtonOra1 = oSpanOra.getElementsByTagName("button");
oButtonOra1[0].click();
}
并在html中的输入标记内调用它:
<span style="margin-left:8em;"><b>Set Attuale: </b><input id="iOra1ON3" style="width:15%;text-align:right;border:none"></input></span>
<script type="text/javascript">
$(document).ready(function() {
$('#iOra1ON3').timepicker({
showMinutes:false,
onSelect:
function SetTime(Ora1On3Span,Ora1On3Span){}
});
});
</script>
但它不起作用,因为我无法将输入和span标记的id传递给函数本身。 this.id不起作用,因为我在输入标记内调用函数,但在span标记之外。 我应该怎么做才能将id传递给函数并获得干净的代码? 提前感谢任何建议 更新1 :) 我刚刚在函数调用
中使用'variable'修改了html和js代码$('#iOra1ON3').timepicker({
showMinutes:false,
onSelect: function () {
SetTime('Ora1On3Span','iOra1ON3')
}
});
并在函数本身中添加此mod
function SetTime(OraSpan,Input)
{
var oSpanOra = document.getElementById(OraSpan);
var oInputOra = oSpanOra.getElementsByTagName("input");
oInputOra[0].value = parseInt(document.getElementById(Input).value);
var oButtonOra1 = oSpanOra.getElementsByTagName("button");
oButtonOra1[0].click();
}.
只有1个参数可以使用! 但是当我尝试添加另一个参数和第二个函数调用时,一切都不再起作用了。所以我犯了一个错误,但我无法弄清楚我在哪里做到了。
答案 0 :(得分:1)
您的函数setTime
不需要输入:
function SetTime(){
var oSpanOra = document.getElementById("OraSpan");
var oInputOra = oSpanOra.getElementsByTagName("input");
oInputOra[0].value = parseInt(document.getElementById("Input").value);
var oButtonOra1 = oSpanOra.getElementsByTagName("button");
oButtonOra1[0].click();
}
所以你的代码应该是(在timepicker中)
onSelect: function(){SetTime();}
OR
onSelect: SetTime