无法从后端访问脚本设置的 html 值
Posted
技术标签:
【中文标题】无法从后端访问脚本设置的 html 值【英文标题】:Cannot access html value set by script from backend 【发布时间】:2022-01-01 06:43:34 【问题描述】:我有一个带有 runat="server" 和 id 的 html 输入标签。一个 jquery 函数(滑块)设置输入字段的值。但是,我无法访问服务器端输入控件的值。 如何获取输入控件的值?
jquery 滑块函数 sn-p:
var num = $('#body_num1')
$('#slider').slider(
min:0,
max:100,
slide: function(event, ui)
num.val(ui.values[0]);
);
asp.net 代码:
<input type="text" id="num1" readonly runat="server"/>
当按钮 doSomething 被点击时(它应该访问 num1 的值):
Protected Sub btn_doSomething_ServerClick(sender As Object, e As EventArgs)
Dim num1_input As String = num1.Value
System.Diagnostics.Debug.Writeline(num1_input)
End Sub
我得到 JIT 编译器遇到内部限制错误。
【问题讨论】:
嗨,你可以编辑你的帖子添加一些代码吗?您可以添加生成的 html(来自浏览器)吗? 换句话说,请提供minimal reproducible example。 嗨,我相应地修改了帖子。谢谢 这是使用 WebForms 吗?如果是这样,我建议添加一个<asp:HiddenField>
,并在设置num.val
的同时设置它的值。它已经被“连接”以使值在 VB.NET 代码中可用。
您好,感谢您的解决方案。我相应地调整了代码,它工作正常。
【参考方案1】:
试试这个:
<div id="MyTestSlider" style="width:30%">
</div>
<asp:HiddenField ID="MySlideValue" runat="server" ClientIDMode="Static"/>
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
<script>
$('#MyTestSlider').slider(
min: 0,
max: 100,
step: 5,
slide: function (e)
slideValue = $('#MyTestSlider').slider("value")
$('#TextBox1').val(slideValue)
$('#MySlideValue').val(slideValue)
);
</script>
因此后面的代码是这样的:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Debug.Print("Slider value = " & MySlideValue.Value)
Debug.Print("Slider value in text box = " & TextBox1.Text)
End Sub
所以我有一个隐藏字段和一个文本框。你当然不需要两者。
【讨论】:
以上是关于无法从后端访问脚本设置的 html 值的主要内容,如果未能解决你的问题,请参考以下文章