Javascript 如何在表单中选择项目、更改背景并提交
我正在尝试选择一个项目元素,然后将背景颜色更改为蓝色(选中时)禁用任何其他项目更改背景颜色,即只能选择一个元素,然后提交表单。我只想在选择某个项目时提交 $document.readyfunction{ $'form'。在'click','div',函数{ e、 防止违约; $'done'。attr'disabled','disabled'; $'input'.removeClass'bluebg'; $'div'。删除类'bluebg'; $this.addClass'bluebg'; }; $“确定”。单击函数{ 如果$'div'.hassclass'bluebg' { document.location.href='page.aspx'; } 否则{alert'项目未被选中';} }; }; 项目1 项目2 项目3 您的代码可以工作: 编辑:我的建议是在表单中添加一个标识符,并使用更具体的选择器,因为使用$'div'。removeClass'bluebg';您正在从页面内的所有div中删除该类 $document.readyfunction{ $'myform'。在'click','div',函数{ e、 防止违约; $'done'。attr'disabled','disabled'; $'myform input'.removeClass'bluebg'; $'myformdiv'.removeClass'bluebg'; $this.addClass'bluebg'; }; $“确定”。单击函数{ 如果$'myformdiv'.hasglass'bluebg' { document.location.href='page.aspx'; } 否则{alert'项目未被选中';} }; }; 表格组{ 填充:10px0; } 布鲁伯格先生{ 背景:蓝色 } 项目1 项目2 项目3Javascript 如何在表单中选择项目、更改背景并提交,javascript,jquery,Javascript,Jquery,我正在尝试选择一个项目元素,然后将背景颜色更改为蓝色(选中时)禁用任何其他项目更改背景颜色,即只能选择一个元素,然后提交表单。我只想在选择某个项目时提交 $document.readyfunction{ $'form'。在'click','div',函数{ e、 防止违约; $'done'。attr'disabled','disabled'; $'input'.removeClass'bluebg'; $'div'。删除类'bluebg'; $this.addClass'bluebg'; };
为了运行您的示例,我下载了我在头部显示的jquery版本,基本上我应用了3个方面: 1使用selectedId变量保留所选项目的id。 2将按钮输入更改为提交输入,并使用CSS添加图像。 3添加隐藏输入以存储您的选择
<html>
<head>
<script src="js/jquery-1.11.3.min.js"></script>
<style type="text/css">
.bluebg {
background-color: blue;
}
.ok-button {
/* Change this for your image location */
background: url(OK.gif);
/* Adjust according to your image */
width: 20px;
height: 20px;
}
</style>
<script>
var selectedId = null;
$(document).ready(function() {
$('form').on('click', 'div', function(e) {
e.preventDefault();
$(this).addClass('bluebg');
if (selectedId != null) {
$('#' + selectedId).removeClass('bluebg');
}
selectedId = $(this).attr('id');
$('#myItem').val(selectedId);
});
$('#myForm').submit(function() {
if (selectedId != null) {
return true;
}
alert('Item is not selected');
return false
});
});
</script>
</head>
<body>
<form id="myForm" action="page.aspx" method="POST">
<div id="item1">Item1</div>
<div id="item2">Item2</div>
<div id="item3">Item3</div>
<input id="myItem" name="myItem" type="hidden" />
<input type="submit" class="ok-button" value="" />
</form>
</body>
到底是什么问题?我把你的东西作为一个片段。还没有足够的东西来解决这个问题。请添加您的CSS和其他相关HTML。可能是您没有正确定义bluebg类。代码对我来说很好。@Mikey:当我执行$'ok'时。第一次单击时,它会给我提示,但随后整个表单的背景变为蓝色。这段代码没有任何意义。您正在表单提交之前执行重定向,并且表单上的提交处理程序被阻止…它永远不会提交问题是当我执行$'ok'时。单击,我将获得整个表单的蓝色背景。我该如何预防呢?