关于javascript removeclass的帮助

时间:2011-06-06 10:53:37

标签: javascript html

我有一个注册表单

<form class="sform" method="post" action="<?=base_url()?>login/create_member" >
                <div class="rleft">User Type <span style="color:red">*</span></div>
                <div class="fright">
                <select name="role" id="role" onchange="rToggle()">
                <option value="1">Company</option>
                                <option value="2">Student</option>
                </select>
                </div>
                <div class="rleft">Username <span style="color:red">*</span></div><div class="fright">
                    <input name="username" type="text" id="username" size="20" title="Username" class="rtb" value="<?php echo set_value('username');?>">
                <?php echo form_error('username');?></div>
                <div class="rleft">Password <span style="color:red">*</span></div><div class="fright">
                    <input name="password" type="password" id="password" size="20" title="Password" class="rtb" value="<?php echo set_value('password');?>">
                <?php echo form_error('password');?></div>
                <div class="rleft">Confirm&nbsp;Password <span style="color:red">*</span></div><div class="fright">
                    <input name="password2" type="password" id="cpassword" size="20" title="Confirm Password" class="rtb" value="<?php echo set_value('password2');?>">
                <?php echo form_error('password2');?></div>
                <div class="rleft">Last Name <span style="color:red">*</span></div><div class="fright">
                    <input name="lname" type="text" id="firstname" title="First Name" class="rtb" value="<?php echo set_value('lname');?>">
                <?php echo form_error('lname');?></div>
                <div class="rleft">First Name <span style="color:red">*</span></div><div class="fright">
                    <input name="fname" type="text" id="lastname" title="Last Name" class="rtb" value="<?php echo set_value('fname');?>">
                <?php echo form_error('fname');?></div>
                <div class="rleft">Middle Initial <span style="color:red">*</span></div><div class="fright">
                    <input name="mname" type="text" id="middlename" size="5" title="Middle Initial" value="<?php echo set_value('mname');?>">
                <?php echo form_error('mname');?></div>
                <div class="rleft">E-mail Address <span style="color:red">*</span></div><div class="fright">
                    <input NAME="email_add" type="text" id="email" title="Email" class="rtb" value="<?php echo set_value('email_add');?>">
                <?php echo form_error('email_add');?></div>
                <div id="companydetails">
                    <div class="rleft">Position/Title <span style="color:red">*</span></div><div class="fright">
                        <input NAME="cposition" type="text" id="cposition" title="Position/Title" class="tb">
                    </div>
                    <div class="rleft">Company Name <span style="color:red">*</span></div><div class="fright">
                        <input NAME="cname" type="text" id="cname" title="Company Name" class="tb">
                    </div>
                    <div class="rleft">Office Address <span style="color:red">*</span></div><div class="fright">
                        <input NAME="caddress" type="text" id="caddress" title="Office Address" class="tb">
                    </div>
                    <div class="rleft">Contact Number <span style="color:red">*</span></div><div class="fright">
                        <input NAME="ccontact_no" type="text" id="ccontact_no" title="Office Address" class="tb">
                    </div>                    
                </div>                
                <div class="rleft">&nbsp;</div>
                <div class="fright">
                    <input type="submit" value="Save" name="submit" id="regsubmit">
                    <input type="reset" value="Clear" ></div>



            </form> 

和我的javascript函数

function rToggle()
{
    if ($('#role').val() == '1') {
        $('#companydetails').hide();
        $('#cposition').removeClass('rtb');    
        $('#cname').removeClass('rtb');            
        $('#caddress').removeClass('rtb');    
        $('#ccontanct_no').removeClass('rtb');    
    }
    else {
        $('#companydetails').show();
        $('#cposition').addClass('rtb');    
        $('#cname').addClass('rtb');            
        $('#caddress').addClass('rtb');    
        $('#ccontanct_no').addClass('rtb');    
    }
} 

这样的工作原理如下:。

如果我选择2(学生),它只会显示以下字段:username,pass,cpass,fname,mname,email_address

如果我选择1(公司),它将显示所有字段,包括上面的字段和cname,cposition,caddress,ccontact_no

现在的问题是,当我填满所有字段然后选择2(学生)时,它仍将保存我的数据库中的所有帖子数据。我想要的是即使我填满所有字段然后选择2(学生)那些在公司细节中现在必须保存。 有人知道解决这个问题吗?或javascript专家?

1 个答案:

答案 0 :(得分:0)

您应该将PHP添加到您的代码中。

但回答你的问题:这是服务器方面的问题。用JavaScript解决它是不够的 在您的PHP代码中,无论您在何处编写INSERT或UPDATE查询,都必须检查角色为2,如果不是,则不添加额外字段。

为避免在不需要时将额外字段传递到您的服务器,您可以像这样更新代码:

if ($('#role').val() == '1') {
    // ...

    $('#cposition').disabled = false;
    // etc. for the other inputs
}
else {
    // ...

    $('#cname').disabled = true;
    // etc.
}