当前位置: 动力学知识库 > 问答 > 编程问答 >

javascript - Problem related to document.form.submit() in ASP

问题描述:

There are 3 buttons on a web page. On clicking each button a same popup window (say window1) opens up. Now there is another button on this popup window (window1), which further opens up to another popup window (say window2). On selecting some value from the 'window2', that value is passed onto the 'window1'. There is a 'Find' link on a 'window1', which calls a javascript function 'clicked()':

<head>

<%

Dim command

command = Request.Form("hid");

Response.Write(“Value” & command); -- The value is not printed (Reason found after

analysis that may be because the form is not submitted

successfully)

%>

function clicked()

{

document.form.hid.value='FIND';

alert("before"); -- This message box appears

**document.form.submit();** -- after a lot of analysis the conclusion is that

this submit statement stops working (as on the status

bar 'Opening https:.....File1.asp?form=...' is not

displayed when 'after' message box appears

alert("after"); -- This message box appears

}

<body.......>

<% if command = "FIND" then

Response.Write ("Inside Find"); -- This message is not printed.

// some functonality

%>

<form ....>

<input type="hidden" name="hid" value="">

</form>

</body>

This full code works fine on my machine. But this code does not work properly when run on the client-side!, although the same server and the same deployed application is being accessed. There is no particular sequence/scenario but for eg.

When say button1 clicked->window1 opens->window2 is opened->value selected->returned to window1->Clicked on Find-> clicked on Ok->returned on the main page.

Then repeated the same scenario for say 3rd button.

(Till now 'Find' link works fine).

Now repeated the same scenario for 2nd button and here 'after' message is obtained but 'inside Find' is not printed!!

网友答案:

The document object doesn't have a form property.

The code only works if you have the attribute name="form" on the form, and only if there is a single form with that name on the page. That is a bad name for a form, as there are other objects in the DOM that actually have a form property (i.e. fields in a form).

You should give an unambiguous name to the form, and use the document.forms collection to access the form instead of relying on that the form is added to the document namespace.

分享给朋友:
您可能感兴趣的文章:
随机阅读: