zactek
11-18-2008, 03:18 PM
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:
<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> <br>
<hr>
To use this Assistant, enter the requested information and press 'Update' once you are finished.<br> <br>
Address:<br> <input type="text" name="Txt_Add" size="50"><br><br>
City:<br> <input type="text" name="Txt_City" size="50"><br><br>
Zip Code:<br> <input type="text" name="Txt_ZIP" maxlength="5" size="50"><br><br>
Cell Phone:<br> <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> <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> <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>
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:
<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> <br>
<hr>
To use this Assistant, enter the requested information and press 'Update' once you are finished.<br> <br>
Address:<br> <input type="text" name="Txt_Add" size="50"><br><br>
City:<br> <input type="text" name="Txt_City" size="50"><br><br>
Zip Code:<br> <input type="text" name="Txt_ZIP" maxlength="5" size="50"><br><br>
Cell Phone:<br> <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> <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> <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>