2015-11-07 6 views
0

Я работаю над прототипом, и я хочу вызвать действие после отправки, но только если заполнены необходимые поля.HTML5 обязательное действие триггера атрибута с jQuery

У меня есть этот код

<button type="submit" onclick="doSomething()" class="btn btn-primary">Register</button> 

А также вход на мою форму, используя «необходимый атрибут» из HTML 5, как этот

<input type="text" class="form-control" placeholder="Name" required> 

Я хочу, чтобы вызвать действие OnClick только если вход был заполнен. Я предполагаю, что я мог бы сделать это, проверяя, если вход был заполнен с помощью JQuery, мне было интересно, если есть более простой способ

+0

Является й Требование минимальной длины для элемента 'input'? – guest271314

+0

Не совсем, его нужно заполнить –

ответ

1

Ну, я действительно нашел решение, если кто-то сталкивается с одной и той же проблемой, так я это сделал.

Вместо того, чтобы использовать «щелчок» на кнопку теге я добавил «onsubmit» (я понятия не имел, это существовало) события внутри моей тег формы с моей функцией DoSomething, как это:

<form onsubmit="doSomething()"> 

Функция будет вызываться только в том случае, если требуемые входные данные заполнены, что легко.

Спасибо за тех, кто пытался помочь в любом случае

+0

Если решение по адресу разрешает вопрос, может «принять» собственный ответ, см. Http: // stackoverflow.com/help/self-answer – guest271314

0

Попробуйте использовать oninput событие

function doSomething() { 
 
    console.log("do stuff") 
 
} 
 

 
document.querySelector("input").oninput = function() { 
 
    this.nextElementSibling.click() 
 
}
<input type="text" class="form-control" placeholder="Name" required> 
 
<button type="submit" onclick="doSomething()" class="btn btn-primary">Register</button>

+0

Это не работает. Функция «doSomething» запускается, даже если требуемый ввод не заполняется. Я действительно нашел решение, я буду размещать сейчас –

+0

@PedroBernardo _ «Это не сработает. Функция« doSomething »запускается, даже если требуемый ввод не заполнен». _ Зачем спрашивали, нужна ли длина для элемент 'input'. Если не требуется требуемая длина, ожидается, что 'doSomething' будет вызываться, даже если ввод был символом пробела' '' '. См. Комментарий в _ «Не совсем, его просто нужно заполнить» _ – guest271314

+0

Но в вашем ответе функция doSomething запускается даже без символа пробела. –

0

Ну вы всегда можете использовать этот https://jsfiddle.net/2Lzo9vfc/26/

HTML

<button type="submit" class="btn btn-primary">Register</button> 
<input type="text" class="form-control" placeholder="Name" required> 

JS

$('button').click(function() { 
    var content = $('input').val(); 

    if(content != '') { 
    alert(content); 
    } 
}); 
+0

Да, сэр, это определенно решит его, но, как я сказал по моему вопросу: «Я полагаю, я мог бы это сделать, проверяя, был ли вход заполнен с помощью jQuery, мне было интересно, есть ли более простой способ ». И я на самом деле нашел более простой способ, как показывает мой ответ. Спасибо, в любом случае –