当用标签形式覆盖时,为什么函数隐藏/显示元素不起作用
Why function hide/show element not work , when cover with tag form?
当用标记形式覆盖时,为什么函数隐藏/显示元素不起作用?
当我测试检查隐藏/显示元素的单选按钮时,它不起作用。
但当我删除tag form
并测试它是否正常时,
如何使用tag form
隐藏/显示元素
Fiddle here
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<form name="form1" id="buy_out_form-id" method="post" action="" enctype="multipart/form-data" onsubmit="return checkform(this);" style=" margin: 0px; ">
<script>
// script for hide.show element base on radio button //
$(document).ready(function(){
$(".color").click(function(){
if($(this).attr("value")=="red"){
$("#red").show();
$("#blue").hide();
}
if($(this).attr("value")=="blue"){
$("#blue").show();
$("#red").hide();
}
});
});
</script>
<input onchange="this.form.submit();" class="color" type="radio" name="rdSpace" value="red" checked="">RED
<br>
<input onchange="this.form.submit();" class="color" type="radio" name="rdSpace" value="blue">BLUE
<br>
<span id="red">RED RED RED RED RED</span>
<span id="blue" style="display: none;">BLUE BLUE BLUE BLUE BLUE</span>
</form>
将HTML输入标签更改为
<input onchange="javascript:e.preventDefault();
this.form.submit();" class="color" type="radio" name="rdSpace" value="red" checked="">RED
<br>
<input onchange="javascript:e.preventDefault();this.form.submit();" class="color" type="radio" name="rdSpace" value="blue">Blue
这将避免您提交表格。
编辑:如果您希望表单提交,并且只希望hide
/show
正常工作,则需要将红色/蓝色span从中移出,并使用ajax提交表单,以便表单提交,但带有红色/蓝色的span保留在页面上。
尝试作为
$(document).ready(function () {
$(".color").click(function (e) {
if ($(this).attr("value") == "red") {
$("#red").show();
$("#blue").hide();
}
if ($(this).attr("value") == "blue") {
$("#blue").show();
$("#red").hide();
}
e.preventDefault();
});
});
演示
好吧。。。因此,让我们分解来了解正在发生的事情:
这里有两条输入线:
<input onchange="this.form.submit();" class="color" type="radio" name="rdSpace" value="red" checked="">RED
<input onchange="this.form.submit();" class="color" type="radio" name="rdSpace" value="blue">BLUE
您已将onchange
事件设置为this.form.submit();
。
因此,当radio
的值发生变化时,这将尝试以this.form.submit();
中提到的形式submit
单击任何单选按钮时,jQuery检测到事件并冒泡所需的操作(show();
/hide();
),但完成后,控件返回到onchange
并尝试submit
,form
被包裹在-中,因此出现错误
我建议您添加一个submit
按钮,而不是触发事件,因为它会导致问题,或者您可以使用另一个答案中提到的javascript:e.preventDefault()
!
相关文章:
- 从var向代码隐藏函数传递值
- javascript函数和代码隐藏函数的执行顺序
- 使用Javascript的多显示隐藏函数
- jQuery隐藏函数与“;按钮“;以及“;span”;但不是用“;a“;要素
- jQuery隐藏函数出现问题
- 带有隐藏函数的AngularJS自定义指令
- Jquery隐藏函数不起作用
- 如何在document.ready(function)时运行隐藏函数和动画
- 使用 JavaScript 访问隐藏函数
- 从 javascript 执行代码隐藏函数/子 (VB.NET)
- 使用 Jquery 显示和隐藏函数
- 使用 ajax 调用代码隐藏函数
- JavaScript 显示隐藏函数布局问题火狐浏览器
- 如何使用源映射从转译的代码中隐藏函数调用
- 如何使用 js 显示/隐藏函数内的标记
- 隐藏函数 other 中的复选框,并禁用所有元素以禁用复选框
- 从 JavaScript 调用代码隐藏函数,该函数可能会返回另一个 JavaScript 函数
- 如何使用java脚本函数中的参数调用代码隐藏函数
- 如何从asp.net代码隐藏函数中调用javascript函数
- 带有隐藏函数的JavaScript扩展类