为什么我在javascript中看不到.value属性的字符串?
问题描述:
VS2013,MVC5,VB,在剃刀视图为什么我在javascript中看不到.value属性的字符串?
我想设置一个字符串的值将被发回到控制器。我敢新的JavaScript,但我发现这个(link)其中包括下面的代码:
<input type="text" id="mytext">
<script type="text/javascript">
var elem = document.getElementById("mytext");
elem.value = "My default value";
</script>
当我尝试的那种类型,因为看到“ELEM”的“值”属性上面不可用。为什么会这样?
最终,我试图修改一个表单字段,将返回到控制器。虽然我上面的问题是我想知道的,但我认为包含完整的上下文会很有用。
的看法是设置有:
@Using (Html.BeginForm(Nothing, Nothing, FormMethod.Post, New With {.id = "thisForm"}))
我输入元素是:
<input type="button" onclick="UserCommit()" value="Next" class="btn btn-default" tabindex="2" />
外壳和脚本是:
<script type="text/javascript">
function UserCommit() {
$("#thisForm").submit()
}
</script>
上述作品的脚本并提交表单与原始输入元素相同:
<input type="submit" value="Next" class="btn btn-default" tabindex="2" />
我想将多个复选框字段的值合并到控制器期待的单个表单字段中,所以我想我可以使用JavaScript将所有选中字段连接到期望字段。但我似乎无法像上面链接到的SO帖子那样访问表单字段。
我的当前视图使用HTML辅助并生成后续的html(这被带到看着生成的源):
<input id="Response1" name="Response1" type="checkbox" value="true" /><input name="Response1" type="hidden" value="false" /> one<br />
<input id="Response2" name="Response2" type="checkbox" value="true" /><input name="Response2" type="hidden" value="false" /> two<br />
预期的实际形式元素为“响应”,因此,如果我串联响应1和RESPONSE2响应将捕获无论多少复选框被创建和检查的数据。控制器期望看到“响应”,并且它是接收方法中的一个绑定字段。
这是我键入:
<script type="text/javascript">
function UserCommit() {
var myElement = document.getElementById("Response");
myElement.value = "A new response";
$("#thisForm").submit()
}
</script>
但“.value的”上面看到了智能感知不出来,当然不运行。
-
新增原帖后:
我也觉得这(link) SO张贴使用我会学习和尝试按照复选框帮手。但JavaScript问题仍然存在。
-
在评论中添加了mplungjan。这是你在问什么,产生“响应”字段的行?
@Html。复选框(“响应”,FALSE)
又将这条线产生:
<input id="Response" name="Response" type="checkbox" value="true" /><input name="Response" type="hidden" value="false" />
答
你的JS代码是从的jsfiddle测试有效,所以这是有可能的智能感知错误或限制。尝试直接在document.getElementById上设置值,而不是先设置变量。
因此改变
var elem = document.getElementById("mytext");
elem.value = "My default value";
要:
var elem = document.getElementById("mytext").value = "My default value";
或者,使用jQuery:
$('#mytext').val("my default value");
在提交事件或提交按钮的点击NEVER提交表单。你的领域的id =“Response”在哪里? – mplungjan 2015-01-20 22:01:10
我在帖子正文中添加了我认为您在上面要求的内容作为附加材料。我不确定我是否从未强调过。你说的是我用过的javascript submit,还是原来的 Alan 2015-01-20 22:21:29
如果你想改变html,使用input.setAttribute(“value”,123)而不是input.value = 123; – dandavis 2015-01-20 23:24:40