首先发布在这里,我会尽量简单: 我需要创建一个表格,医疗会议的参与者注册课程,每个课程持续3个小时,所以一个想在上午10点开始上课的人不能注册到上午11点,下午12点和下午1点的课程,但他可以注册到下午2点等等。
每小时有3个不同的课程。
我以为使用javascript做这件事,但我绝对迷失了。
你能否告诉我如何做到这一点?
谢谢!
答案 0 :(得分:0)
快速简便的方法是设置一个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
最后一步将会有点痛苦,但这是我如何解决它的基础
答案 1 :(得分:0)
您错过了问题要求中的一些重点。当用户在上午10点登记注册课程时,他们无法注册两组课程:
正如你所说,你对javascrip几乎是“空”,我只是出于概念目的编写了这些代码。
您需要做的第一件事是下载jquery.js文件(您可以在google的任何地方找到它),然后将该文件与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>