Во-первых , Вы должны добавить атрибут required
в input
Как это
<input name="User_Email" type="text" required/>
Подробнее вы можете прочитать https://css-tricks.com/almanac/selectors/v/valid/
Во-вторых , Ваш синтаксис здесь неправильный line 1
if $('input[name=User_Email]').is(':valid') {
$('#outform').show(); // line 1
else // line 2
$('#outform').hide(); // line 3
} // line 4
Он должен закрываться сразу после line 1
вместо line 4
здесь
if $('input[name=User_Email]').is(':valid') {
$('#outform').show(); } // line 1
else // line 2
$('#outform').hide(); // line 3
// line 4
Демо-версия ниже, чтобы проверить результат.
Обновлено
Измените тип поля электронной почты с text
на email
input name="User_Email" type="email" required/>
Вы также можете использовать Regex
как ответ Рневиу
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
// Should hide default
$('#outform').hide();
$('input[name=User_Email]').keyup(function(){
var isValid = $(this).is(':valid') && validateEmail($(this).val());
if (isValid)
$('#outform').show();
else
$('#outform').hide();
});
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Email:</p>
<input name="User_Email" type="email" required/>
<div id="outform">
<p>Company Name:</p>
<input type="text" name="CompanyName"/>
<p>Website:</p>
<input type="text" name="Website" />
<input type='submit'>
</div>