2017-06-21 33 views
3

我有一個有2個輸入的表單,非常簡單。Jquery-表單在第一次沒有得到我的輸入值

<form class="cform"> 
    <input type="text" name="cname" class="cname" id="cname" autofocus placeholder="Firstname Lastname"> 
    <div class="floatl regards"><input type="submit" value="Submit" class="submit" id="submit"></div> 
</form> 

我jQuery是:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script> 
    $("#submit").click(function() 
    { 
     var CName = $("#cname").val(); 
     console.log(CName); 
    }); 
</script> 

我的問題是,當我在文本框中添加一個單詞,然後點擊提交按鈕,它不會顯示在控制檯任何東西,除非我再次鍵入相同的單詞,並提交它!它可以在第二次點擊時起作用。 我注意到它不起作用,它添加了URL中的單詞,我應該再次編寫完全相同的單詞,並單擊提交,如果我希望它能夠工作! 我該如何解決這個錯誤?哪部分代碼是錯誤的?

+0

你可以嘗試將整個代碼包裝在'$(function(){/ * code here * /})中;'?它可能工作。 –

+1

add - > return false;在console.log下(CName) – dharmx

回答

1

單擊您的按鈕將使用GET方法提交表單到當前頁面,爲什麼您在單擊鏈接後看到鏈接上的單詞,您只需要防止將該按鈕的類型更改爲button而不是submit,這將阻止該網頁刷新:

<input type="text" name="cname" class="cname" id="cname" autofocus placeholder="Firstname Lastname"> 

或者你可以在你的,而不是js代碼添加e.preventDefault()return false;

$("#submit").click(function(e){ 
    e.preventDefault(); //That will prevent the click from submitting the form 
    var CName = $("#cname").val(); 

    console.log(CName); 

    return false; //Also prevent the click from submitting the form 
}); 

希望這有助於。

$("#submit").click(function(){ 
 
    var CName = $("#cname").val(); 
 
    console.log(CName); 
 

 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form class="cform"> 
 
    <input type="text" name="cname" class="cname" id="cname" autofocus placeholder="Firstname Lastname"> 
 
    <div class="floatl regards"><input type="button" value="Submit" class="submit" id="submit"> 
 
    </div> 
 
</form>

+0

我嘗試將輸入類型更改爲按鈕。當我點擊那個按鈕時,它就起作用,但當我在文本框中寫下我的文字之後按下Enter時,它就不起作用。我在我的jQuery結尾添加了返回false,它起作用。不管怎樣,謝謝你。 –

0

當你點擊提交按鈕的頁面將重新加載,你的jQuery的定義將不被認可。爲了防止使用html按鈕而不是輸入提交按鈕。

或者你可以在你的函數調用中使用e.preventDefault();來防止提交表單。 (e){}

相關問題