Change custom profile field using javascript

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mousi
    New Member
    • Feb 2006
    • 7
    • 3.5.x

    Change custom profile field using javascript

    Hello!
    I have created 2 custom profile fields in my vbulletin 3.5.4 forum. 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...
  • Jake Bunce
    Senior Member
    • Dec 2000
    • 46598
    • 3.6.x

    #2
    It appears that the context of the "edit profile" page is causing it not to work. There might be other javascript present that is conflicting, but I can't say for sure. Look for differences between the two pages that might be causing the problem.

    I recommend www.vbulletin.org if you need further help troubleshooting your code.

    Comment

    • mousi
      New Member
      • Feb 2006
      • 7
      • 3.5.x

      #3
      I couldn't find something in the template (i'm lacking of experience in js) and noone answered to my post in vbulletin.org, so if someone knows how to fix this please post it here! Thanks...

      Comment

      widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
      Working...