将不同的Span和Input元素传递给Javascript函数

时间:2015-01-19 08:35:20

标签: javascript jquery html

我正在写一个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个参数可以使用! 但是当我尝试添加另一个参数和第二个函数调用时,一切都不再起作用了。所以我犯了一个错误,但我无法弄清楚我在哪里做到了。

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