Results 1 to 2 of 2

Thread: *HELP* VBscript interaction with elements

  1. #1
    Join Date
    Nov 2008
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Exclamation *HELP* VBscript interaction with elements

    I am trying to piece together an HTA application that utilizes some VBScript and JavaScript code. When ever I try to use the "Update" button, I get the error Line 187 - Object doesn't support this property or method

    This doesn't seem to correspond with what I am trying to perform, but I am thinking that the Javascript that I am calling for these elements is causing some kind of issue. I appreciate any help on this:

    Code:
    <html>
    <head>
    <title>Contact Update Assistant</title>
    <HTA:APPLICATION 
         ID="objNetOps" 
         APPLICATIONNAME="Contact Update Assistant"
         SCROLL="Yes"
         SINGLEINSTANCE="yes"
         WINDOWSTATE="normal"
         BORDER="dialog"
         CAPTION="e-Assistant"
    >
    <script type="text/javascript" language="javascript">
    var reOneOrMoreDigits = /[\d+]/;
    var reNoDigits = /[^\d]/gi;
    //***************************************************
    function doMask(textBox) {
    	var keyCode = event.which ? event.which : event.keyCode;
    	// enter, backspace, delete and tab keys are allowed thru
    	if(keyCode == 13 || keyCode == 8 || keyCode == 9 || keyCode == 46)
    		return true;
    	// get character from keyCode....dealing with the "Numeric KeyPad" 
    	// keyCodes so that it can be used
    	var keyCharacter = cleanKeyCode(keyCode);
    	// grab the textBox value and the mask
    	var val = textBox.value;
    	var mask = textBox.mask;
    	// simple Regex to check if key is a digit
    	if(reOneOrMoreDigits.test(keyCharacter) == false)
    		return false;
    	// get value minus any masking by removing all non-numerics
    	val = val.replace(reNoDigits,'');			
    	// add current keystroke
    	val += keyCharacter;
    	// mask it...val holds the existing TextBox.value + the current keystroke
    	textBox.value = val.maskValue(mask);
    	setCaretAtEnd(textBox);
    	return false;
    }
    //***************************************************
    function onFocusMask(textBox) {
    	var val = textBox.value;
    	var mask = textBox.mask;
    	if(val.length == 0 || val == null) {
    		var i = mask.indexOf('#');
    		textBox.value = mask.substring(0,i);
    	}
    	setCaretAtEnd(textBox);
    	// set just in case.
    	textBox.maxlength = mask.length;
    }
    //***************************************************
    function onBlurMask(textBox) {
    	var val = textBox.value;
    	// if no digits blank it.
    	if(reOneOrMoreDigits.test(val) == false) {
    		textBox.value = '';
    	}
    }
    String.prototype.maskValue = function(mask) {
    	var retVal = mask;
    	var val = this;
    
    	for(var i=0;i<val.length;i++) {
    		retVal = retVal.replace(/#/i, val.charAt(i));
    	}
    	// get rid of rest of #'s
    	retVal = retVal.replace(/#/gi, "");
    	return retVal;
    }
    //***************************************************
    function cleanKeyCode(key)
    {
    	switch(key)
    	{
    		case 96: return "0"; break;
    		case 97: return "1"; break;
    		case 98: return "2"; break;
    		case 99: return "3"; break;
    		case 100: return "4"; break;
    		case 101: return "5"; break;
    		case 102: return "6"; break;
    		case 103: return "7"; break;
    		case 104: return "8"; break;
    		case 105: return "9"; break;
    		default: return String.fromCharCode(key); break;
    	}
    }
    //***************************************************
    function setCaretAtEnd(field) {
      if (field.createTextRange) {
        var r = field.createTextRange();
        r.moveStart('character', field.value.length);
        r.collapse();
        r.select();
      }
    }
    </script>
    <SCRIPT Language="VBScript">
    
    Sub Window_Onload
    Set objWshNet = CreateObject("Wscript.Network")
    strCN = lcase(objWshNet.ComputerName)
    strCU = lcase(objWshNet.UserName)
    
    Dim objFS, objFile, append
    append = 8
    
    Const ForWriting = 2
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objLogFile = objFSO.OpenTextFile("contact_update_access.log", append, True)
    
    objLogFile.WriteLine (strCU & " on " & strCN & " " & Now())
    
    objLogFile.Close
    Set objWSHShell = CreateObject("Wscript.Shell")
    '36    Msgbox "The application has started."
    Set objWSHShell = CreateObject("Wscript.Shell")
    '    Msgbox "The application has started."
    Set objADSysInfo = CreateObject("ADSystemInfo")
    strUser = objADSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)
    'msgBox "You current object path is: " & strUser
    strgivenName = objUser.Get("givenName")
    strdisplayName = objUser.Get("displayName")
    MsgBox "Hello, " & strgivenName & "!"
    '===================================================================
    strMyDC = "CSDC002" & "/"
    'strMyDC = My Domain Controller
    Set objADSysInfo = CreateObject("ADSystemInfo")
    strUser = objADSysInfo.UserName
    Set objItem = GetObject("LDAP://" & strMyDC & strUser)
    On Error Resume Next
    'GetInfo
    strStreetAddress = objItem.Get("streetAddress")
    strPOBOX = objItem.Get("postOfficeBox")
    strCity = objItem.Get("l")
    strZIP = objItem.Get("postalCode")
    strTelephoneNumber = objItem.Get("telephoneNumber")
    strMobile = objItem.Get("mobile")
    strTitle = objItem.Get("title")
    '62    WriteInfo
    Txt_Add.Value = strStreetAddress
    'Txt_POBox.Value = strPOBOX
    Txt_City.Value = strCity
    Txt_ZIP.Value = strZIP
    Txt_PhN.Value = strTelephoneNumber
    Txt_Cell.Value = strMobile
    Txt_Title.Value = strTitle
    End Sub
    
    Sub Update
    Set objADSysInfo = CreateObject("ADSystemInfo")
    strUser = objADSysInfo.UserName
    Set objItem = GetObject("LDAP://" & strMyDC & strUser)
    On Error Resume Next
    objItem.Put "streetAddress", Txt_Add.Value
    objItem.Put "l", Txt_City.Value
    objItem.Put "PostalCode", Txt_ZIP.Value
    objItem.Put "TelephoneNumber", Txt_PhN.Value
    objItem.Put "mobile", Txt_Cell.Value
    objItem.SetInfo
    'Line 85
    msgbox "Thank you, your information has been saved."
    End Sub
    
    Sub PrintThis
        Window.Print()
    End Sub
    
    </SCRIPT>
    </head>
    <body>
    <body STYLE="font:12pt arial; color:black;
     filter:progid:DXImageTransform.Microsoft.Gradient
    (GradientType=0, StartColorStr='#FFF0F5', EndColorStr='#FAFAD2')">
    
    The purpose of the Contact Update Assistant is to maintain an accurate and current method of contacting you. <br>All of the information requested in this application will be used solely as a means of contacting you in the event of an emergency.<br>&nbsp;<br>
    <hr>
    To use this Assistant, enter the requested information and press 'Update' once you are finished.<br>&nbsp;<br>
    Address:<br>&nbsp;<input type="text" name="Txt_Add" size="50"><br><br>
    City:<br>&nbsp;<input type="text" name="Txt_City" size="50"><br><br>
    Zip Code:<br>&nbsp;<input type="text" name="Txt_ZIP" maxlength="5" size="50"><br><br>
    Cell Phone:<br>&nbsp;<input type="text" name="Txt_Cell" size="50" mask="(###) ###-####" onBlur="return onBlurMask(this);" onFocus="return onFocusMask(this);" onKeyDown="return doMask(this);"><br><br>
    Telephone:<br>&nbsp;<input type="text" name="Txt_PhN" size="50" mask="(###) ###-####" onBlur="return onBlurMask(this);" onFocus="return onFocusMask(this);" onKeyDown="return doMask(this);"><br><br>
    Title:<br>&nbsp;<input type="text" name="Txt_Title" size="50"><br><br>
    <input id=runbutton  class="button" type="button" value="Print" name="PrintNow"  onClick="PrintThis">
    <input id=runbutton  class="button" type="button" value="Update" name="UpdateInf"  onClick="Update"><br><br>
      <BUTTON onclick="window.close()">Quit</BUTTON>
    </body>
    
    </html>

  2. #2
    Join Date
    Nov 2008
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Utilize one script or the other

    I suggest using VBScript to run the function form the get go as opposed to mixing and matching your scripting languages. By utilizing VB you can use Visual Studio to debug the code

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •