2017-02-15 123 views
0

控制我在我的代碼表單提交的功能

<form role="form" action="" method="POST"> 
    ... 
    <div class="box-footer"> 
     <button type="submit" onsubmit="submitForm()" class="btn btn-primary">Save</button> 
    </div> 
    ... 

@section('footer_js') 
    <script> 
     function submitForm() {return false;}; 
    </script> 
@endsection 

目前透過按鈕,我想通過該submitForm通過()函數來控制有效數據提交。我所粘貼的代碼不起作用,因爲提交始終有效。也許屬性'onsubmit'不適合使用?

回答

0

一種方法是在你的函數中submitForm把e.preventDefault阻止你的表單提交服務器端。這將使你然後做的JavaScript /前端驗證:

function submitForm(e) 
{ 
    e.preventDefault(); 

    //Get user Values 
    fname = $('#firstName').val(), 
    email= $('#email').val(), 

    if (validateName(fname) == true && validateEmail(email) == true) 
    { 

     $.ajax ({ 
     // you could then do an ajax call 


    } 


} 

// This function will return a true value 
// if your variable contains regex 
function validateName(myname) { 
    var re = /[a-z]/i; 
    return re.test(myname); 
} 

function validateEmail(myemail) { 
    var re = /[a-z]/i; 
    return re.test(email); 
} 

如果你有叫名字表單域,並呼籲表單字段名字,你可以檢查用戶輸入對你的標準值。如果我的例子是檢查用戶的輸入是否在A-Z之間。完成之後,您可以使用ajax發送用戶的輸入服務器端以進一步驗證。

+0

感謝您的回答。如果我可以使用ajax,但是頁面URL對應於一個API調用(這是爲什麼action =「」method =「POST」),並且必須使用它,那將會很好。我試着添加'e.preventDefault();' 'return false'行之前的代碼,但沒有阻止操作 – user1403546