Can you please post this solution here? I am using vbulletin 3.5.4 and I have created 2 custom profile fields. The one is a select box and the other is a text box. I want to make a javascript so when the user selects the first option from the select box, the text box becomes readOnly, grey and it has a value that I want. So I did the following:
userfield_select template:
Code:
<script type="text/javascript">
<!--
function nostudreg() {
if (document.register.csel_field5.value==1) {
document.register.ctb_field7.value="My value";
document.register.ctb_field7.readOnly=true;
document.register.ctb_field7.style="background:#CCCCCC";
} else {
if (document.register.ctb_field7.value=="My value") {
document.register.ctb_field7.value="";
document.register.ctb_field7.readOnly=false;
document.register.ctb_field7.style="background:#FFFFFF";
}
}
}
function nostudpro() {
if (document.profileform.csel_field5.value==1) {
document.profileform.ctb_field7.value="My Value";
document.profileform.ctb_field7.readOnly=true;
document.profileform.ctb_field7.style="background:#CCCCCC";
} else {
if (document.profileform.ctb_field7.value=="My Value") {
document.profileform.ctb_field7.value="";
document.profileform.ctb_field7.readOnly=false;
document.profileform.ctb_field7.style="background:#FFFFFF";
}
}
}
//-->
</script>
<fieldset class="fieldset">
<legend><label for="csel_$profilefieldname">$profilefield[title]</label></legend>
<table cellpadding="0" cellspacing="$stylevar[formspacer]" border="0" width="100%">
<tr>
<td>$profilefield[description]</td>
</tr>
<tr>
<td>
<if condition="$show['optionspage']"><span style="float:$stylevar[right]"></if>
<if condition="THIS_SCRIPT=='register'">
<select name="userfield[$profilefieldname]" id="csel_$profilefieldname" onchange="nostudreg();">
<else />
<select name="userfield[$profilefieldname]" id="csel_$profilefieldname" onchange="nostudpro();">
</if>
<if condition="$show['noemptyoption']"><option value="0" $selected></option></if>
$selectbits
</select>
<if condition="$show['optionspage']"></span><label for="csel_$profilefieldname">$profilefield[title]:</label></if>
</td>
</tr>
$optionalfield
</table>
</fieldset>
<input type="hidden" name="userfield[{$profilefieldname}_set]" value="1" />
As you can see I made two different javascript functions for "register" and "edit profile".
The funny thing is that my script works as expected in "register" but it doesn't work in "edit profile". In "edit profile" it's the onchange event that doesn't work and not the function. I even tried to do this:
Code:
function nostudpro() {
alert('alert');
}
but it doesn't work either!
Can someone help me? What is the problem with this? Thanks in advance...