Problem when settign From Controls readonly property to False

Hi All,

I have a for mon my page, and initially when the page loads all the controls are readonly. when the user clicks an edit button, a vbscript sub will set all the controls to writeable again. The problem I am facing is, that after setting al lthe controls to writeable, I can't type into the textboxes unless I first press the INSERT key on my keyboard.

Can anyone tell me how to overcome this problem or if its not possible, how to simulate an INSERT key press?Thanks in advance.
winnydapooAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

GaryCommented:
Try it with this method which is cross browser compatible with NS and IE, us the Blur effect


<script language="JavaScript">
function changeReadOnly(){
    for (i = 0 ; i < document.myForm.elements.length ; i++){
         document.myForm.elements[i].onfocus="";}}
</script>

<form name=myForm>
<input type=text name=a OnFocus="this.blur()">
<input type=text name=b OnFocus="this.blur()">
<input type=text name=c OnFocus="this.blur()">
<input type=button onClick=changeReadOnly()>
</form>
0
winnydapooAuthor Commented:
Hi gary,

Do you have something liek that in Vbscript? Also, The onfocus="" doesn't change the readonly status right? I am nto sure how to change the readonly status in vbscript so I can't really test your solution!
0
GaryCommented:
The onFocus stops the fields being editable, does it need to be compatible with earlier versions of NS?  Try my example as it is now (just that code) and you will see what I mean.
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

winnydapooAuthor Commented:
No what I need to do is, For each control in the form

Set it to WRITEABLE (Readonly=False)
Allow entry without having to press the Insert key
0
GaryCommented:
<script language="JavaScript">
function changeReadOnly(){
    for (i = 0 ; i < document.myForm.elements.length ; i++){
         document.myForm.elements[i].style.readonly=false;}}
</script>

<form name=myForm>
<input type=text name=a style="readonly:true">
<input type=button onClick=changeReadOnly()>
</form>
0
winnydapooAuthor Commented:
I can still only key in information after pressing the INSERT key. is there a way to simulate the INSERT keypress?
0
BarrazaCommented:
Winny
Can you show us some of your code of how you set all the controls to ready only?  This might help us to help you to set your controls to writable, without pressing the Insert button on your keyboard (since there is not a way to simulate the Insert button on your keyboard from a web page).
0
winnydapooAuthor Commented:
It is something like this :

<script language="VBScript">
sub editrecord()
document.mrForm.a.readonly=false
end sub
</script>

<form name=myForm>
<input type=text name=a readonly>
<input type=button onClick=editrecord()>
</form>
0
GaryCommented:
Does it have to be vbscript, try my example in my previous example, it's almost identical and does the same thing except it works without having to press the Insert key
0
winnydapooAuthor Commented:
I don't think this works :

<script language="JavaScript">
function changeReadOnly(){
    for (i = 0 ; i < document.myForm.elements.length ; i++){
         document.myForm.elements[i].style.readonly=false;}}
</script>

<form name=myForm>
<input type=text name=a style="readonly:true">
<input type=button onClick=changeReadOnly()>
</form>

Because when I load a page containing only that code, the textbox is not readonly. I think the stye="readonly:true" doesn't work.
0
winnydapooAuthor Commented:
I will add 90 points if anybody can help me get rid of the need to press insert before keying into the form...
0
BarrazaCommented:
Winny
I took your code segment and copied/pasted it into an asp document on my web server.  However the code worked fine (with the exception of the mrform which should have been myform), and I was not able to duplicate the error you are getting as far as the need to press Insert.  I'm wondering, maybe there is something else in your code that is causing it.  To find out, have you tried testing the simplified code segment you posted above?  Stick that into an asp page and let us know if that still forces you to press Insert.  If it doesn't, then there must be something else in your code that is causing it.  If it does, then I'd say it is something specific to your system.
Let us know.
0
winnydapooAuthor Commented:
You are right! It must be something else in the page that is causing the requirement to press insert, any ideas on what might cause something like that?
0
BarrazaCommented:
I'll need to take a look at the rest of your code and I'll tell you.
0
winnydapooAuthor Commented:
Can I email it to you? the code is a bit too large to paste, I ahven't tidied ti up yet.
0
BarrazaCommented:
Sure:
espamame@yahoo.com
0
BarrazaCommented:
Winny,
What is happening is this:  You've got a maxlength on each of your input boxes and they are being filled from the recordset (rs).  When you populate the input boxes, they are being filled with blank spaces after the value.  All you need to do is trim them... for example:
value='" & rs("caddr1") & "'
becomes:
value='" & trim(rs("caddr1")) & "'

This should take care of your problem.  Let me know if it doesn't.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
winnydapooAuthor Commented:
Spot on! Thanks alot Barraza for taking the time to look at my code, realle helped me with that!
0
BarrazaCommented:
Any time  :D
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.