调用VBScript中的JS函数

Calling JS function in VBScript

本文关键字:函数 JS 中的 VBScript 调用      更新时间:2023-09-26

嗨,我正在尝试将一个asp页面的文本框值获取到另一个asp页并设置该值这是它做的VBScript

If(disableListHeaderPR()) Then
    bEnablePRField = false
Else
    bEnablePRField = true
End If 

这里disableListHeaderPR()是JS函数。我收到一个错误,说变量未定义:"disableListHeaderPR"这是JS函数代码

function disableListHeaderPR()
{
    if(dateDifference(document.getElementById("txtCommDte").value, "05/04/2012") < 0 ) 
    {
        return false;
    }
    else
    {
        return true;
    } 
}

此页面包含从js调用vbs的信息,反之亦然。

http://www.webdeveloper.com/forum/archive/index.php/t-49920.html

但请记住,只要您使用VBScript,您的应用程序就不会在IE以外的任何浏览器中按预期运行。

我的解决方案是在VBScript服务器端设置变量,然后在调用其他JavaScript函数的另一个JavaScript函数中将结果刷新到页面。样品(未经测试)如下:

<%
    Dim bEnablePRField
    bEnablePRField = Request.Form("checkboxEnablePRField") <> ""
%>
<script type="text/javascript">
    function EnablePRField() {
        if (<%=bEnablePRField%> === 'False') {
            disableListHeaderPR();
        }
    }
    function disableListHeaderPR() {
            if (dateDifference(document.getElementById("txtCommDte").value, "05/04/2012") < 0 ) {
                return false;
            } else {
                return true;
            } 
    }
</script>

类似的东西应该对你有用。

我觉得我应该指出,对于经典ASP,VBScript只在服务器端处理,所以它应该在任何支持JavaScript的浏览器中都能工作。在我切换到.Net之前,我经常使用这个技巧,它在Firefox和IE中都很有效。

如果您希望在VBScript函数中使用JavaScript函数的结果,只需将JavaScript函数的值存储在隐藏字段(例如<input id="myResults" name="myResults" type="hidden" />)中,然后访问VBScript中的值(例如Request.Form("myResults")。

如果在客户端混合使用VBScript和JavaScript,也可以使用隐藏字段。只需更改访问VBScript中隐藏字段的方式(例如document.form("myForm").myResults.value)。

最后,我非常赞同techfoobar。如果你在客户端混合使用VBScript和JavaScript,那么它唯一能使用的浏览器就是IE,我也强烈建议你完全切换到JavaScript。

希望这能有所帮助,

Pete