У меня есть функция:
function myfunction() {
if (a == 'stop') // How can I stop the function here?
}
Есть ли в JavaScript что-то похожее на exit()
?
Вы можете просто использовать return
.
function myfunction() {
if(a == 'stop')
return;
}
Это отправит возвращаемое значение undefined
тому, кто вызвал функцию.
var x = myfunction();
console.log( x ); // console shows undefined
Конечно, вы можете указать другое возвращаемое значение. Любое возвращаемое значение будет выведено в консоль по приведенному выше примеру.
return false;
return true;
return "some string";
return 12345;
Видимо, вы можете сделать это:
function myFunction() {myFunction:{
console.log('i get executed');
break myFunction;
console.log('i do not get executed');
}}
Смотри блок областей через использование ярлыка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
Я могу'т вижу никаких минусов пока. Но это вовсе'т, кажется, как общего пользования.
Полученный ответ: https://stackoverflow.com/questions/1361437/javascript-equivalent-of-phps-die
function myfunction() {
if(a == 'stop')
return false;
}
возвращает false;
это гораздо лучше, чем просто возвращение;
Используя немного другой подход, вы можете использовать Поймай
, с бросить заявление.
function name() {
try {
...
//get out of here
if (a == 'stop')
throw "exit";
...
} catch (e) {
// TODO: handle exception
}
}
Если вы ищете скрипт для предотвращения отправки формы при обнаружении некоторых ошибок, этот метод должен сработать
function verifyData(){
if (document.MyForm.FormInput.value.length == "") {
alert("Write something!");
}
else {
document.MyForm.submit();
}
}
измените тип Submit Button на "кнопку"
<input value="Save" type="button" onClick="verifyData()">
надеюсь, это поможет.
С помощью возвращение
будет остановить функцию и возвращать undefined, или значение, заданное с помощью команды возврата.
function myfunction(){
if(a=="stop"){
//return undefined;
return; /** Or return "Hello" or any other value */
}
}
Я не люблю отвечать на вещи, которые арен'т реальное решение...
...но когда я столкнулся с этой же проблемой, я сделал ниже Решение:
function doThis() {
var err=0
if (cond1) { alert('ret1'); err=1; }
if (cond2) { alert('ret2'); err=1; }
if (cond3) { alert('ret3'); err=1; }
if (err < 1) {
// do the rest (or have it skipped)
}
}
Надеюсь, что это может быть полезно для кого-либо.
выход(); можно использовать для перехода к следующей проверке.
Если вы с помощью jQuery. Это должно остановить функцию от восходящей до такой родительской функцией вызова это должно остановить, а также.
function myfunction(e)
{
e.stopImmediatePropagation();
................
}