Как проверить в JS, если значение p:calendar пусто?
У меня такая проблема - мне нужно проверить на своей странице JSF/PrimeFaces, если p:calendar
значение (вводится пользователем с клавиатуры) пусто и, если это так, очистить сообщение об ошибке
это мой фрагмент календаря JSF
<div class="item">
<p:outputLabel id="l_dateBirth" for="dateBirth" value="#{msgs['customerForm.dateBirth']}"/>
<p:calendar id="dateBirth" widgetVar="dateBirthVar" value="#{customerBean.customer.dateOfBirth}"
placeholder="MM/dd/yyyy"
showOn="button" navigator="true"
pattern="MM/dd/yyyy" yearRange="-120:+0"
mindate="#{dateBean.minDate}"
maxdate="#{dateBean.maxDateOfBirth}"
required="true"
requiredMessage="#{msgs['Error.dateBirth.mandatory']}"
disabled="#{customerBean.mode eq 'EDIT'}">
<f:ajax execute="@this" event="dateSelect" render="m_dateBirth" />
<p:ajax event="keyup" oncomplete="hideCustomerCalendarErrMsg('dateBirth')" />
<f:validator binding="#{dateOfBirthValidator}"/>
</p:calendar><p:message id="m_dateBirth" for="dateBirth" display="text"/>
</div>
это мой фрагмент JS
function hideCustomerCalendarErrMsg(variable) {
var inputField, msg;
inputField = PF('dateBirthVar').getDate();
msg = document.getElementById("createEditCustomerForm:accordion:m_" +variable);
if (inputField.value === null) {
msg.innerHTML = "";
}
}
так что, пожалуйста, помогите мне - это не работает. И мне нужно очистить сообщение об ошибке валидатора на лету, если пользователь очистит поле календаря
1 ответ
Решение
Вместо вызова getDate(), попробуйте проверить сам ввод на наличие пустого значения.
function hideCustomerCalendarErrMsg(variable) {
var inputField, msg;
inputField = PF('dateBirthVar').input;
msg = document.getElementById("createEditCustomerForm:accordion:m_" + variable);
if (inputField.val() === "") {
msg.innerHTML = "";
}
}
Или вы все еще можете иметь свой код как есть, но вместо
if (inputField.value === null)
Пойти на
if (inputField === null)