这里的第一个帖子,我将尽量简单:我需要创建一个表单,其中医学会议的参与者注册到课程,每个课程持续3个小时,所以想要从上午10点开始上课的人不能注册到上午11点,中午12点和下午1点的课程,但他可以注册到下午2点等等。
每小时有3节不同的课。
我想用javascript来做这件事,但是我完全迷失了方向。
你能给我一点提示吗?
谢谢!!
发布于 2011-10-05 08:37:27
最快、最简单的方法是设置一个javascript函数来运行禁用或启用其他复选框的onChange。你会做类似这样的事情
<input type="checkbox" onChange="enableDisable(11)" name="11" id="whatever">
你的javascript的伪代码是:
//Declare function
//Check the current id and get the next 3 IDs
//Check the status of the currentid to find out if you checked or unchecked it
//if you checked it, disable the next 3 ids
//if you unchecked it, enable the next 3, dependant on whether any of the previous 3 values are checked
最后一步会有点痛苦,但这是我如何处理它的基本方法
发布于 2011-10-05 09:01:15
在你的问题要求中,你忽略了一些重要的点。当用户在上午10点打勾注册类时,他们无法同时注册两组类:
正如你所说的,你使用javascrip几乎是“空的”,我写这些代码只是为了概念上的目的。
你需要做的第一件事是下载jquery.js文件(你可以用谷歌在任何地方找到它),然后把这个文件和你的register.php文件放在同一个目录下。
代码如下:
<input type="checkbox" value="10" name="convention_time"> 10 am<br>
<input type="checkbox" value="11" name="convention_time"> 11 am<br>
<input type="checkbox" value="12" name="convention_time"> 12 am<br>
<input type="checkbox" value="13" name="convention_time"> 1 pm<br>
<input type="checkbox" value="14" name="convention_time"> 2 pm<br>
<input type="checkbox" value="15" name="convention_time"> 3 pm<br>
<script>
$(function(){
$('[name="convention_time"]').live('click',function(){
var A=$(this);
var method2call = A.is(':checked')?'attr':'removeAttr'
var selector = '[name="convention_time"]:lt(3)'
A.nextAll(selector).add( A.prevAll(selector) )[method2call]('disabled','disabled').attr('checked',false)
})
})
</script>
https://stackoverflow.com/questions/7655506
复制相似问题