3

I am trying to pass a control's id to a javascript function that adds the value of it(the control which is a textbox) to a listbox but apparently I am not getting it right, can someone please correct me.

Thanks.

<input type="button" ID="btnAddtoLstBox" value="" title="Add this to the list" onclick="javascript:addToList(document.getElementById(btnAddtoLstBox));"
class="ui-icon ui-icon-refresh ui-corner-all" style="width: 20px; height: 20px; background-position: -64px 80px"  />

  // scripts to add list items
        function addToList(varTxtBox) {

                 // get the list box
                var lb = document.getElementById("uilstMemTypeTier");

                // get the text to add
                var toAdd = varTxtBox.value;

                if (toAdd == "") return false;

                // look for the delimiter string. if found, alert and do nothing
                if (toAdd.indexOf(delim) != -1) {
                    alert("The value to add to the list cannot contain the text \"" + delim + "\" as it is used as the delimiter string.");
                    return false;
                }

                // check if the value is already in the list box
                for (i = 0; i < lb.length; i++) {
                    if (toAdd == lb.options[i].value) {
                        alert("The text you tried to add is already in the list box.");
                        return false;
                    }
                }

                // add it to the hidden field
                document.getElementById("<%=uihdnlistBasedFieldsListItems.ClientID%>").value += toAdd + delim;

                // create an option and add it to the end of the listbox
                lb.options[lb.length] = new Option(toAdd, toAdd);

                // clear the textfield and focus it
                varTxtBox.value = "";
                varTxtBox.focus();
            }
2
  • Are you getting an error? Which bit isn't working? Commented Sep 27, 2011 at 8:17
  • Also, is delim variable in enclosing scope and defined? Commented Sep 27, 2011 at 8:29

3 Answers 3

8

Change onclick="javascript:addToList(document.getElementById(btnAddtoLstBox));" to onclick="addToList(document.getElementById('btnAddtoLstBox'));" or onclick="addToList(this);"

Sign up to request clarification or add additional context in comments.

1 Comment

what about for <%=id.ClientID%> ?
1

If you are using control event handler you can provide this and it be control:

 onclick="addToList(this)"

Code: http://jsfiddle.net/ARBHj/

Comments

0

You can also do it in following way-

<body>
<form id="form1" runat="server">
<div id="div1" style="height:100px; width:192px; background-color:red;">

</div>
<br />
<div id="div2" style="height:100px; width:192px; background-color:green; display:block">

</div>
<br />
    <asp:Button runat="server" Text="Change color" id="btnColor" OnClientClick="javascript:return changeColor();"/>
    <asp:Button Text="Hide 1st" runat="server" ID="btnHide1st" OnClientClick="javascript:return hideDiv('div1');"/>
    <asp:Button Text="Hide 2nd" runat="server" id="btnHide2nd" OnClientClick="javascript:return hideDiv('div2');"/>
</form>

Hope this may have helped you.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.