• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проверить заполнено поле или нет (web)

  • Автор темы Sasha*
  • Дата начала
S

Sasha*

Подскажите , пожалуйста, как проверить при сохранении документа заполнено поле или нет и вывести сообщение?

В лотусе я делаю следующим образом:
Код:
@If(@IsDocBeingSaved;
@If (@Trim(FIELD)= ""; @Failure("Поле 'FIELD', является полем обязательным для ввода."); @Success); @True)

Под Web данное сообщение появляется на новой странице, а не как в Lotus.

Подскажите как это лучше сделать под веб.
 
G

Guest

на событие QuerySave для формы:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Source.Document.GetItemValue("FIELDNAME")(0)="" Then
Msgbox("вы не заполнили поле FIELD")
Continue=False
End If
End Sub

Оо, извините, опять промазал, надо внимательнее читать пост ))
 
S

Sasha*

на событие QuerySave для формы:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Source.Document.GetItemValue("FIELDNAME")(0)="" Then
Msgbox("вы не заполнили поле FIELD")
Continue=False
End If
End Sub

Не вывело ни какого сообщения.
Если я не ошибаюсь то, Msgbox- под веб не работает.
 
G

Guest

Ну а Java Script чем вам не угодил ?

Насчет предыдцщего совета я протупил, такой скрипт действительно работаер только в лотусе, я просто проглядел проблему )) Ну а ява скрипт на WebQuerySave вам должен подойти

Тьфу, опять приношу извинения WebQuerySave зхдесь ни при чем
 
S

Sasha*

Ну а Java Script чем вам не угодил ?

Насчет предыдцщего совета я протупил, такой скрипт действительно работаер только в лотусе, я просто проглядел проблему )) Ну а ява скрипт на WebQuerySave вам должен подойти

Тьфу, опять приношу извинения WebQuerySave зхдесь ни при чем


Скажите , пожалуйста, как с помощью явы добраться до поля и проверить его содержимое.

Я с Java Script практически не работала. :unsure:
 
D

dmytro.pastovenskyi

ну вы бы для приличия сначала в гугл глянули :unsure:

if(document.forms[0].fldname.value == '') {
alert('aaaalarm !')
}

такого рода...
 
K

Kee_Keekkenen

например, можно сделать кнопку "Сохранить" (@Command([FileSave])) типа shared action поместить ее на форму, затем открыть форму в браузере, перейти в режим просмотра кода, найти там код описывающий обработку кнопки (_doClick) и запомнить указатель на кнопку что-то типа _doClick('C32573EC002D21F7.52c0655fb0b53066c32573fe003a10cf/$V5ACTIONS/0.C4', this, null)
затем убрать кнопку с формы и создать на форме кнопку, используя Pass-Thru HTML <input type="button" value="Сохранить" onClick="saveDoc()"

после создать необходимые JS-функции и описать их в JS Header формы
function saveDoc(){
var isCorrect = validateField();

if (isCorrect){
putDocToDatabase();
}
} //end saveDoc()
function validateField() {

if (проверка полей){
return true
}else{
return false
}
}//end validateField()

function putDocToDatabase(){
_doClick('C32573EC002D21F7.52c0655fb0b53066c32573fe003a10cf/$V5ACTIONS/0.C4', this, null);
} // end putDocToDatabase()
 
S

Sandr

Еще вопроси:

Как прверить заполнено или нет поле типа: DialogList? (или равняется оно определенному значению или нет)

Аналогично обычному полю.. у инпута типа select тоже есть value :)

ЗЫ: Старайтесь не использовать консрукцию типа document.forms[0].field.value, лучше так:
document.getElementById('fieldName').value
 
G

Guest

Еще вопроси:

Как прверить заполнено или нет поле типа: DialogList? (или равняется оно определенному значению или нет)

Здесь особый случай. Делай так:

if (form.elements[1].options[form.elements[1].selectedIndex].text=='текст') {
alert('есть контакт')}


Прошу прощения за индексы..Можно просто так:

if (form.fieldname.options[form.fieldname.selectedIndex].text=='4') {
alert('есть контакт')}
 
S

Sasha*

Аналогично обычному полю.. у инпута типа select тоже есть value :)

ЗЫ: Старайтесь не использовать консрукцию типа document.forms[0].field.value, лучше так:
document.getElementById('fieldName').value
Воспользовалась Вашим советом использую:
Код:
 name=document.getElementById('FieldTypeDL').value
alert(name.options[name.selectedIndex].text)

Только другая проблема возникла , после появления диалог обновляются поля, как с этим бороться?
 
S

Sandr

О каком диалоге речь?
Если имеется ввиду выбор значения в Selecte, то убирите галку "Refresh document on choise" или что-то такое...

например, можно сделать кнопку "Сохранить" (@Command([FileSave])) типа shared action поместить ее на форму, затем открыть форму в браузере, перейти в режим просмотра кода, найти там код описывающий обработку кнопки (_doClick) и запомнить указатель на кнопку что-то типа _doClick('C32573EC002D21F7.52c0655fb0b53066c32573fe003a10cf/$V5ACTIONS/0.C4', this, null)
затем убрать кнопку с формы и создать на форме кнопку, используя Pass-Thru HTML <input type="button" value="Сохранить" onClick="saveDoc()"

после создать необходимые JS-функции и описать их в JS Header формы

Ого, не делайте так никогда! Привязыватся к штуке типа C32573EC002D21F7.52c0655fb0b53066c32573fe003a10cf большая ошибка.
Лучший способ - на кнопке "Сохранить" использовать JavaScript, делат ьпроверку JavaScriptом и, в случае необходимости сохранить, делать так: document.getElementById('SaveButton').click();
Где SaveButton - id кнопки, на которую повешана собака @Command([FileSave]), кнопке на последней вкладке сказать Style = "display:none".
 
S

Sasha*

О каком диалоге речь?
Если имеется ввиду выбор значения в Selecte, то убирите галку "Refresh document on choise" или что-то такое...



Ого, не делайте так никогда! Привязыватся к штуке типа C32573EC002D21F7.52c0655fb0b53066c32573fe003a10cf большая ошибка.
Лучший способ - на кнопке "Сохранить" использовать JavaScript, делат ьпроверку JavaScriptом и, в случае необходимости сохранить, делать так: document.getElementById('SaveButton').click();
Где SaveButton - id кнопки, на которую повешана собака @Command([FileSave]), кнопке на последней вкладке сказать Style = "display:none".

Я с помощью alert() выводила сообщение. После нажатия на кнопку "Ок" обновлялся весь документ. Я уже это исправила, ошибка была в моем коде.

Сейчас столкнулась другой проблемой:
Если поле скрыто то getElementById('Скрытое поле') возвращает ошибку - ... has no properties

Подскажите, пожалуйста, как можно это исправить?
 
S

Sandr

Sasha*
1. Генерируйте HTML дял всех полей (это свойство формы, 2-я закладка).
2. Если надо скрыть поле в ВЕБе, а генерить HTML для всех полей не хочется, то не скрывайте поля средствами лотуса, а на последней закладке свойства поля, в атрибуте style напишите display:none
 
S

Sasha*

Sasha*
1. Генерируйте HTML дял всех полей (это свойство формы, 2-я закладка).
2. Если надо скрыть поле в ВЕБе, а генерить HTML для всех полей не хочется, то не скрывайте поля средствами лотуса, а на последней закладке свойства поля, в атрибуте style напишите display:none
Я генерирую HTML для всех полей, но код на скрытом поле ломается.

Мне нужно скрывать поле при определенных условиях.

Например, если значение в поле TestField="Значение".
Как скрыть поле в таком случае не средствами лотус?
 
S

Sandr

Рисуйте div вокруг поля.
<div style="display:computet value"> ваше поле </div>
computet value вычисляйте так

Код:
@if(TestField="Значение";"none";"")

естесственно, что теги дива должны быть отмечены как HTML на форме
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!