C # & Javascript: Помогите добавить JavaScript к Ctrl

1

Я думаю, что это сузилось до того, что я был моим кодом JavaScript. У меня есть работа с предупреждением, но теперь я хочу использовать свой настоящий код JavaScript и его провал. Мой босс дал мне фрагмент старого кода, который работает для другой страницы/элемента управления. Поэтому я пытаюсь переработать этот код и использовать его здесь. В любом случае мне нужно сделать эти три вещи в моем JavaScript:

  • Пароль должен иметь длину не менее 8 символов
  • пароль должен содержать как минимум одну цифру
  • Пароль должен содержать как минимум одну заглавную букву

Я уже создал aС# версию этой функции здесь:

bool hasLength= password1.Length > 7;
bool hasDigit = password1.Any(c => char.IsDigit(c));
bool hasCapital = password1.Any(c => char.IsUpper(c));

if(!hasDigit || !hasCapital || !hasLength)
{
    oEr.Number = (int)ErrorClass.ErrorNumber.GeneralError;
    oEr.Message = "Password must be at least 8 characters with at least one number, one capital letter and no symbols.";
}

Код выше работает, но его в С#, и они хотят, чтобы я написал его в JavaScript. Вот что я имею в настоящее время:

string jsPasswordScript = "onchange() " +
            "var pw = document.getElementById('AHA_Password1').value.toString(); "+
            "var passw =/^ (?=.*[0 - 9])(?=.*[a - z])(?=.*[A - Z])(?=.{ 8,})/; "+
            "var res = passw.test(pw); " +
            "if (res) [| label_AHA_Password3.innerText = '';|] "+
            "else "+
            "[|label_AHA_Password3.innerText='Password must be at least 8 characters with at least one number, one capital letter and no symbols.';"+
            " document.getElementById('AHA_Password1').focus();|]];";

oTB.ID = "AHA_Password1";
oTB.TextMode = TextBoxMode.Password;
oTB.TabIndex = 21;
oCell = new HtmlTableCell();
oTB.Attributes.Add("OnChange", jsPasswordScript);
oCell.Controls.Add(oTB);
oRow.Cells.Add(oCell);

В настоящее время JavaScript не работает. Он работал, когда я использовал предупреждение как тест. Поэтому что-то должно быть неправильно с JavaScript. Я не очень хорошо разбираюсь в JavaScript, может ли кто-нибудь увидеть мою ошибку в JavaScript или предложить лучший маршрут?

редактировать

Я обновил свой код JavaScript. Я собираюсь проверить это, но вот что я придумал для своего нового js-кода.

function passwordvalidation() {
  var password = document.getElementById('password1').value.toString();
  var hasLength = password.length > 7;
  var hasDigit = System.Linq.Enumerable.from(password).any(function(c) {
    return System.Char.isDigit(c);
  });
  var hasCapital = System.Linq.Enumerable.from(password).any(function(c) {
    return Bridge.isUpper(c);
  });

  if (!hasDigit || !hasCapital || !hasLength) {
    label_AHA_Password3.innerText = "Password must be at least 8 characters with at least one number, one capital letter and no symbols.";
  }

  return undefined;
}
  • 1
    Просто предположите, что я не добавляю код Javascript таким образом, но, поскольку вы хотите добавить скрипт в событие OnChange элемента управления, вам нужна первая часть вашего скрипта onChange () вместо того, чтобы начинаться с var pw =
  • 0
    Кроме того, оператор if в javascript использует фигурные скобки, поэтому я бы изменил это: ShowOfficerDropDowns
Показать ещё 2 комментария
Теги:

1 ответ

2
Лучший ответ

Есть ошибки в JavaScript, которые вы добавляете к элементу управления:

  • Вы уже добавляете его в атрибут OnChange, поэтому нет необходимости в onchange() в начале.
  • Используйте фигурные скобки {} для оператора if, а не квадратные скобки с трубами [ | | ] [ | | ] [ | | ].

Попробуй это:

string jsPasswordScript = "var pw = document.getElementById('AHA_Password1').value.toString(); var passw = /^ (?=.*[0 - 9])(?=.*[a - z])(?=.*[A - Z])(?=.{ 8,})/; var res = passw.test(pw); if(res) { label_AHA_Password3.innerText = ''; } else { label_AHA_Password3.innerText = 'Password must be at least 8 characters with at least one number, one capital letter and no symbols.'; document.getElementById('AHA_Password1').focus(); }";
  • 0
    Спасибо за публикацию ответа. Это не сработало на 100%, но сработало. Мне нужно сделать некоторые настройки. Спасибо за помощь.
  • 0
    Хорошо, я думаю, что вы правы на 100%. Я новичок. Спасибо большое за помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню