Javascript 使用js脚本后无法提交html表单
我有这个html网站Javascript 使用js脚本后无法提交html表单,javascript,jquery,html,asp.net,asp.net-mvc,Javascript,Jquery,Html,Asp.net,Asp.net Mvc,我有这个html网站 <html> <head> <link rel="stylesheet" href="~/Content/index.css" /> <link rel="stylesheet" href="~/Scripts/fancyBox/source/jquery.fancybox.css" type="text/css" media="screen" /> <meta name="viewport" c
<html>
<head>
<link rel="stylesheet" href="~/Content/index.css" />
<link rel="stylesheet" href="~/Scripts/fancyBox/source/jquery.fancybox.css" type="text/css" media="screen" />
<meta name="viewport" content="width=device-width" />
<script type="text/javascript" src="~/Scripts/prototype.js"></script>
<script type="text/javascript" src="~/Scripts/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="~/Scripts/Scale.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="~/Scripts/fancyBox/source/jquery.fancybox.pack.js"></script>
<title>Countries</title>
</head>
<body>
<div>
@foreach (var country in Model)
{
<a class="fancybox">
<div class="tooltip">
@using (Html.BeginForm("ChangeCulture", "Home", new { lang = country.Culture }))
{
<!-- onclick="zoomIn('@country.Culture')"-->
<input id="@country.Culture" class="@country.Sprite" type="image" name="submit" src="//" />
<span class="tooltiptext">@country.Country</span>
}
</div>
</a>
}
</div>
<script type="text/javascript">
$(document).ready(function () {
$(".fancybox").fancybox({
afterShow : function() {
this.find("form").submit();
}
});
})
</script>
</body>
</html>
我的方法
public ActionResult ChangeCulture(string lang)
{
var returnUrl = this.Request.UrlReferrer?.AbsolutePath;
var cookie = this.Request.Cookies["lang"];
if (cookie != null)
{
cookie.Value = lang;
}
else
{
cookie = new HttpCookie("lang")
{
HttpOnly = false,
Value = lang,
Expires = DateTime.Now.AddYears(1)
};
}
this.Response.Cookies.Add(cookie);
return this.Redirect(returnUrl ?? "Index");
}
this.find(“表单”)
中的this
不是这里的$(“.fancybox”)
尝试改用
$('.fancybox form')
。您应该使用jquery选择器
<script type="text/javascript">
$(document).ready(function () {
$(".fancybox").fancybox({
afterShow : function() {
$(".fancybox").submit();
}
});
})
$(文档).ready(函数(){
$(“.fancybox”).fancybox({
afterShow:function(){
$(“.fancybox”).submit();
}
});
})
错误位于以下语句中:
this.find("form").submit();
您正试图在这个
包装器中的普通JS对象上调用find()
方法,其中函数属于jQuery对象。正确的方法是使用jQuery对象,如下所示:
<script type="text/javascript">
$(document).ready(function () {
$(".fancybox").fancybox({
afterShow : function() {
// alternative: use $(this).closest("form").submit();
$(this).find("form").submit();
}
});
});
</script>
您是否在浏览器控制台中发现JS错误<代码>$(此)。最近的(“表单”).submit()通常有效。是的,我收到一个错误,并已将其放置到questionTry
控制台。在$(“.fancybox”).fancybox中记录(此)
。你得到了什么?我认为您应该使用$(this).find(“form”).submit()如果我使用$(this.find(“form”).submit()代码>我没有任何错误,但是表单没有submit@TetsuyaYamamoto,它在一个循环中-这是无效的html,因为重复的id
属性
<script type="text/javascript">
$(document).ready(function () {
$(".fancybox").fancybox({
afterShow : function() {
// alternative: use $(this).closest("form").submit();
$(this).find("form").submit();
}
});
});
</script>
public ActionResult ChangeCulture(string lang)
{
var returnUrl = this.Request.UrlReferrer?.AbsolutePath;
// cookie settings here
if (string.IsNullOrEmpty(returnUrl))
{
return this.RedirectToAction("Index");
}
return this.Redirect(returnUrl);
}