Проверка Javascript не работает на страницах содержимого .Net - PullRequest
0 голосов
/ 02 февраля 2010

Мне интересно, сталкивался ли кто-нибудь со следующей проблемой.

На одной не связанной (с главной страницей) странице ASPX я выполняю простые проверки JS:

   function validateMaxTrans(sender, args) {
        // requires at least one digit, numeric only characters
        var error = true;
        var regexp = new RegExp("^[0-9]{1,40}(\.[0-9]{1,2})?$");
        var txtAmount = document.getElementById('TxtMaxTransAmount');
        if (txtAmount.value.match(regexp) && parseInt(txtAmount.value) >= 30) {
            document.getElementById('maxTransValMsg').innerHTML = ""
            args.IsValid = true;
        }
        else {
            document.getElementById('maxTransValMsg').innerHTML = "*";
            args.IsValid = false;
        }
    }

Затем, как только я переместил это на страницу содержимого главной страницы, я получил значение txtAmount null.

Существует ли другой способ доступа к DOM при попытке выполнить проверку JS на стороне клиента с помощью главных страниц / страниц содержимого?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2010

Вы используете текстовые поля asp?Если это так, я считаю, что вам нужно сделать что-то вроде document.getElementById('<%= txtMaxTransAmount.ClientID %>').

Надеюсь, это поможет Том

0 голосов
/ 02 февраля 2010

Посмотрите на источник вашей отрендеренной страницы на главной странице. Многие элементы будут иметь такой идентификатор, как ControlX $ SubControlY $ txtMaxTransAmount ... вам необходимо соответствующим образом настроить проверку. Я часто просто вставляю идентификаторы в документ клиента ..


<script type="text/javascript">
var controls = {
  'txtAmount': '<%=TxtMaxTransAmount.ClientId%>',
  ...
}
</script>

Я бы поставил это прямо перед концом вашей области контента, чтобы убедиться, что элементы управления уже отрисованы. Таким образом, вы можете просто использовать window.controls.txtAmount для ссылки на идентификатор тега серверного элемента управления. Вы можете даже сделать правое значение для document.getElementById ('...') напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...