2016-11-10 88 views
0

一個文本框在窗體中,我已經把一個文本框和按鈕:值分配給從jQuery的

<input type="text" class="form-control" id="txtCustomerId" placeholder="Customer ID"> 
<span class="input-group-btn"> 
    <button class="btn btn-secondary" type="button" data-toggle="modal" data-target="#LovCustomer"><i class="fa fa-list"></i></button> 
</span> 

按下此按鈕,模式窗體(引導)被彈出。我已經把一個按鈕模式窗體上爲:

<td><button id="LSSL" value="LSSL" class="btn btn-info btn-xs"><i class="fa fa-caret-right"></i></button></td> 

我有下面的jQuery在<head>

$(function(){ 
    $('#LSSL').click(function(){ 
     $('#txtCustomerId').val($(this).val()); 
    }); 
}); 

我的要求是獲得按鈕的值被按壓(在模態形式)並將其分配給父窗體的txtCustomerId。但是當我按下按鈕時,頁面被刷新並且文本字段爲空(因爲它被刷新)。

我認爲值已分配,但由於頁面刷新,分配的值消失。

我想知道要麼停止頁面刷新或任何其他方式來實現這一目標。

在此先感謝。

下面是我供你參考<head>部分:

<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> 
    <link rel="stylesheet" type="text/css" media="screen" href="http://tarruda.github.com/bootstrap-datetimepicker/assets/css/bootstrap-datetimepicker.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <script> 
     $(function(){ 
      $('button').click(function(e){ 
       e.preventDefault(); 
       var value = $(this).val(); 
       $('#txtCustomerId').val(value); 
      }); 
     }); 
    </script> 
</head> 

回答

1

您的按鈕應該是這樣的,

<td><button type="button" id="LSSL" value="LSSL" class="btn btn-info btn-xs"><i class="fa fa-caret-right"></i></button></td> 

而且JS中的一部分,你可以做preventDefault()

$(function(){ 
    $('#LSSL').click(function(e){ 
     e.preventDefault(); 
     var value = $(this).attr('value'); 
     $('#txtCustomerId').val(value); 
    }); 
}); 

//You can also use $(document).ready(function(){}) as well. 
$(document).ready(function(){ 
    $('#LSSL').click(function(e){ 
     e.preventDefault(); 
     var value = $(this).attr('value'); 
     $('#txtCustomerId').val(value); 
    }); 
}); 
+0

用的默認行爲'e.preventDefault();'的頁面沒有得到刷新。 (Y) 但該值沒有分配給文本框。 –

+0

更新我的回答@LakmalPremaratne – Samir

+0

如果上面的方法都不行,請嘗試使用相同的用'$(文件)。就緒(函數()'。@LakmalPremaratne – Samir

0

使用 preventDefault()停止按鈕

$(function(){ 
    $('#LSSL').click(function(e){ 
     e.preventDefault(); 
     alert($(this).val()); 
    }); 
}); 

使用

<input id="LSSL" type="button" value="Click" onclick="doSomething(this)"> 

function doSomething(obj) { 
alert(obj.value); 
}