在VBScript中调用JS函数

时间:2012-01-20 15:05:36

标签: javascript asp-classic vbscript

您正在尝试将一个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;
    } 
}

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

我的解决方案是在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>

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

我觉得我应该指出,对于Classic 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。

希望这有帮助,

皮特