2012-01-20 3 views
0

Привет я пытаюсь получить значение текстового поля в один осины страницы на другую страницу осины и установите значение здесь является VBScript, который он делаетВызов функции JS в 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; 
    } 
} 
+1

Я полагаю, вы знаете, что VBScript является только IE технологией. Если вы можете переместить весь свой код в JS, это будет лучше всего. – techfoobar

ответ

2

Эта страница имеет информацию о вызове VBS от JS и наоборот.

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

Но имейте в виду, что до тех пор, как вы используете VBScript, ваше приложение не будет работать, как ожидалось в любом браузере, кроме IE.

+0

Это также работает в HTAs (который использует движок Internet Explorer), а также файлы WSF (механизм WScript/CScript). Кроме того, это работает для ЛЮБОГО установленного языка сценариев. – Nilpo

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> 

Что-то очень похожее на то, что должно работать на вас.

Я считаю, что для классического ASP VBScript обрабатывается только на стороне сервера, поэтому он должен работать в любом браузере, поддерживающем JavaScript. Прежде чем я переключился на .Net, я часто использовал этот трюк, и он отлично работал в Firefox, а также в IE.

Если вы хотите использовать результаты своей функции JavaScript в своей функции VBScript, просто сохраните результаты функции 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.

Надеется, что это помогает,

Пит

+0

Спасибо большое пт .. Я постараюсь сделать то, что вы предложили. – SunVigna

Смежные вопросы