2011-10-14 60 views
0

我有这个JavaScript的滑块,我的问题是我不能分配/传递滑块的值到输入框。我已经尝试在我的javascript中使用这个脚本“document.getElementByID('total')。value = pos”,但它没有传递任何东西。任何想法家伙?提前致谢!Javascript:分配/传递值到输入框

HTML代码:

< input type="hidden" id="total" value="" style="border:0; color:#f6931f; font-weight:bold;" runat="server" /> 

JavaScript函数:

window.addEvent('domready', function() 
    { 
     var mySlideB = new Slider($('slider_gutter_1'), $('slider_knob_1'),   $('slider_bkg_img_1'), 
     { 
      start: 1, 
      end: 100, 
      offset: 10, 
      onChange: function(pos) 
      { 
       if (pos <= 10) { 
        $('slider_desc_value').setHTML("Not Important"); 
       } 
       else if ((pos >= 11) && (pos <= 40)) { 
        $('slider_desc_value').setHTML("Partially Important"); 
       } 
       else if ((pos >= 41) && (pos <= 60)) { 
        $('slider_desc_value').setHTML("Important"); 
       } 
       else if ((pos >= 61) && (pos <= 85)) { 
        $('slider_desc_value').setHTML("Very Important"); 
       } 
       else if (pos > 85) { 
        $('slider_desc_value').setHTML("Critical to our business"); 
       } 

       $('slider_current_val').setHTML(pos + ' %'); 
       $('testjp').setHTML(pos);  

            // THIS IS NOT WORKING, HELP? 
       **document.getElementById('total').value = pos;** 

            //This work c/o Ravi. THanks! 
            document.forms["form1"]["total"].value = pos; 

      } 
     }, null).setMin(1); 

     $('slider_current_val').setHTML(100 + ' %'); 
    }); 
+2

尝试'document.getElementById',而不是'document.getElementByID' – jantimon

回答

2

相反试试这个,给一个名称,你的输入和你的形式,即

<form name="form"><input type="hidden" name="total"/></form> 

,并尝试这个

document.forms["form"]["total"].value = xxx; 
+0

谢谢拉维!这项工作完美!最后.. document.forms [“form1”] [“total”]。value = pos; =) – user994991

1

试试这个,

$('#total').val(pos); 

,并检查您onChange功能是否是通过把警报在函数内部调用。

改变你的功能一样THI,

$(document).ready(function(){ 

//your code here... 
}); 

,而不是window.addEvent('domready', function()

+0

感谢快速的回应。不幸的是,你提到的代码没有通过任何东西到输入框(总计)。检查元素时我也没得到一个错误。 “未捕获Typerror;无法调用空的‘VAL’” =( – user994991

+0

看到我的编辑以上 –

+0

检查我的答案,我想你的投入甚至不存在 – Cystack

0

你为什么不使用

$('#total').val(pos); 

它应该做的伎俩

+0

我已经尝试过,但我没有通过任何东西也得到了时出错。 inpecting页面上的元素。“未被捕获的Typerror;不能调用'null'的方法'”。 – user994991

0

你甚至确定你的意见存在吗?标签结构不正确,您的空间介于<input之间。 正确的命令是getElementById,而不是ID。

您的JavaScript代码是正确的,这就放在一边。

+0

是的,我的输入存在。这里是代码“”。我编辑了标签getElementById。发布问题时我错误地输入了它。将再次尝试。谢谢 – user994991

1

输入具有runat =“server”属性,因此ASP.Net引擎可以分配ID。

就像一个建议查看您的应用程序的来源,你会看到如果ID已经改变。

如果是的话修复很容易。

document.getElementById('<%= total.ClientID %>').value = pos 

或其他两个答案建议

$('#<%=total.ClientID%>').val(pos); 

希望这有助于。

关于。

+0

感谢您的建议,但是当我尝试第一个和第二个代码都没有通过任何东西,也注意到错误,当我检查页面的元素“未捕获Typerror;对象#没有方法'getElementByID'”和“未被捕获的Typerror;不能调用null的方法'val'”TIA! – user994991

+0

正如“Cystack”提到的那样,“getElementByID”不存在。是“getElementById”。 – Sitnam