MVC3 C# 关于隐藏域的赋值问题 <input type="hidden" name= "chapterID" id="chapterID" [email protected] /> 我想给这个隐藏域赋值 然后和JS交互 但是 好像不支持这样赋值 请问有什么解决方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果改用MVC3的 @Html.HiddenFor(model => model.chapterID, new { id="viewChapterID"})可以生成正确的带value的 隐藏域 但是调用JS我取不到其中的value值 看你浏览器源代码里面生成了什么document.getElementById("").value是可以取到的,代码要放在对象生成之后执行 网页源码上的值是正确的<input id="viewChapterID" name="chapterID" type="hidden" value="92" />JS: function SelectChapterDefaultOption() { var options = document.getElementById("chapters").options; for (i = 0; i < options.length; i++) { if (options[i].value == document.getElementById("viewChapterID").value) { alert("2"); options[i].selected = true; } } }不知道是否是 标红的比较有问题 我用if (options[i].value == "92")测试过是正确的 不知道这个取值是否有问题 本帖最后由 net_lover 于 2011-10-01 21:21:48 编辑 如果你说的是真的,是不应该出错的,下面的代码是满足你说的条件的,完全没有问题<input id="viewChapterID" name="chapterID" type="hidden" value="92" /><input id="viewChapterIDXXX" name="chapterID" type="hidden" value="93" /><select id=chapters><option value="93">93<option value="92">92</select><input type=button onclick="SelectChapterDefaultOption()" value=ceshi><script> function SelectChapterDefaultOption() { var options = document.getElementById("chapters").options; for (i = 0; i < options.length; i++) { if (options[i].value == document.getElementById("viewChapterID").value) { alert("2"); options[i].selected = true; } } }</script> 这个select 不是静态的 而是由ajax生成的 在网页上只显示 <select id="chapters" name="chapters"></select>而没有option option是由以下代码生成 function GetChapters() { $("#chapters").empty(); //清空章节SELECT $("#chapters").append("<option value='-1'>--请选择章节--</option>"); var url = "/Question/GetChapterList"; $.getJSON(url, { courseID: $("#courses").val(), rnd: Math.random() }, function (data) { $.each(data, function (id, item) { $("<option></option>").val(item["chapterID"]).text(item["chapterName"]).appendTo($("#chapters")); }); }); } 本帖最后由 net_lover 于 2011-10-01 21:35:51 编辑 恩 这个倒是对的 alert("2");的循环次数是对的 options[i].value == document.getElementById("viewChapterID").value的判断条件却并不成立 $(document).ready(function () { $("#singleSelectAnswers").hide(); $("#judgeQuestionAnswers").hide(); if ($("#courses").val() != "") { GetChapters(); GetQuestionTypes(); SelectChapterDefaultOption(); SelectQuestionDefaultOption(); }这个函数是放在这个里面执行的 判断条件却并不成立你分别打出alert("options[i].value=" + options[i].value )alert("viewChapterID.value=" + document.getElementById("viewChapterID").value)alert("options[i].value=" + options[i].value.length )alert("viewChapterID.value=" + document.getElementById("viewChapterID").value.length )就知道为什么不是相同的了 找到毛病了 获取隐藏域的值的时候 值的后面有一个空格 不知道是否是string结尾的\0导致的 ado.net 检测到无法访问的代码 连接 mysql 报错 C#中怎么调用指定的QQ来留言 谁有windows winform的电子书,或者源代码 啊? 高分提问:[xxx()]是什么意义,是如何定义的,有什么作用 C# access 2007 存取附件 实现导出为 .txt格式(在线求解) 怎样用简单的语句实现一个int转换成string,并且指定转换后的字符长度,不足部分用0填充? 怎么清空gsm模块的缓存? 我想学c++但现在又必须学c#,学了c#后再学c++容易吗 C#语言怎样学...... 请问如何确定字符串是汉字
可以生成正确的带value的 隐藏域 但是调用JS我取不到其中的value值
document.getElementById("").value是可以取到的,代码要放在对象生成之后执行
function SelectChapterDefaultOption() {
var options = document.getElementById("chapters").options;
for (i = 0; i < options.length; i++) {
if (options[i].value == document.getElementById("viewChapterID").value) {
alert("2");
options[i].selected = true;
}
}
}
不知道是否是 标红的比较有问题
测试过是正确的 不知道这个取值是否有问题
<input id="viewChapterIDXXX" name="chapterID" type="hidden" value="93" />
<select id=chapters>
<option value="93">93
<option value="92">92
</select>
<input type=button onclick="SelectChapterDefaultOption()" value=ceshi>
<script>
function SelectChapterDefaultOption() {
var options = document.getElementById("chapters").options;
for (i = 0; i < options.length; i++) {
if (options[i].value == document.getElementById("viewChapterID").value) {
alert("2");
options[i].selected = true;
}
}
}
</script>
在网页上只显示
<select id="chapters" name="chapters"></select>
而没有option
option是由以下代码生成
function GetChapters() {
$("#chapters").empty(); //清空章节SELECT
$("#chapters").append("<option value='-1'>--请选择章节--</option>");
var url = "/Question/GetChapterList";
$.getJSON(url, { courseID: $("#courses").val(), rnd: Math.random() }, function (data) {
$.each(data, function (id, item) {
$("<option></option>").val(item["chapterID"]).text(item["chapterName"]).appendTo($("#chapters"));
});
});
}
options[i].value == document.getElementById("viewChapterID").value
的判断条件却并不成立
$("#singleSelectAnswers").hide();
$("#judgeQuestionAnswers").hide();
if ($("#courses").val() != "") {
GetChapters();
GetQuestionTypes();
SelectChapterDefaultOption();
SelectQuestionDefaultOption();
}
这个函数是放在这个里面执行的
你分别打出
alert("options[i].value=" + options[i].value )
alert("viewChapterID.value=" + document.getElementById("viewChapterID").value)alert("options[i].value=" + options[i].value.length )
alert("viewChapterID.value=" + document.getElementById("viewChapterID").value.length )
就知道为什么不是相同的了
不知道是否是string结尾的\0导致的