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

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

Sasha*

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

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

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

Гость
#2
на событие 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*

Гость
#3
на событие 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- под веб не работает.
 

Гость
#4
Ну а Java Script чем вам не угодил ?

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

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

Sasha*

Гость
#5
Ну а Java Script чем вам не угодил ?

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

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

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

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

dmytro.pastovenskyi

Гость
#6
ну вы бы для приличия сначала в гугл глянули :unsure:

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

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

Sasha*

Гость
#7
ну вы бы для приличия сначала в гугл глянули :(

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

такого рода...
Спасибо, все получилось!
+1
Если у Вас знаете к-н хорошие источники по JAVA Script поделитеть пожалуйста. :unsure:
 

Kee_Keekkenen

Well-Known Member
05.09.2006
639
6
#8
например, можно сделать кнопку "Сохранить" (@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

Sasha*

Гость
#10
ну вы бы для приличия сначала в гугл глянули :)

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

такого рода...
Еще вопроси:

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

Sandr

Гость
#11
Еще вопроси:

Как прверить заполнено или нет поле типа: DialogList? (или равняется оно определенному значению или нет)
Аналогично обычному полю.. у инпута типа select тоже есть value :)

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

Гость
#12
Еще вопроси:

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

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


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

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

Sasha*

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

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

Sandr

Гость
#14
О каком диалоге речь?
Если имеется ввиду выбор значения в 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*

Гость
#15
О каком диалоге речь?
Если имеется ввиду выбор значения в 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

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

Sasha*

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

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

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

Sandr

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

Код:
@if(TestField="Значение";"none";"")
естесственно, что теги дива должны быть отмечены как HTML на форме