2012-10-14 33 views
3

我有一個文本框來保存用戶的Facebook的網址。如何修復文本框中的值?

<tr> 
 
    <td> 
 
     Facebook: 
 
    </td> 
 
    <td> 
 
     <input style="width:300px" type="text" name="facebook" value="http://www.facebook.com/$facebook"> 
 
    </td> 
 
</tr>

我怎樣才能使價值 「http://www.facebook.com/」 固定和不可編輯的?

UPDATE:

$facebook部分需要爲可編輯!

+0

檢查最新編輯到我的答案:[鏈接](http://stackoverflow.com/a/12878380/1190388)提供。 – hjpotter92

+0

我不明白。你是否希望在默認情況下,文本框中的'value'是'http:// www.facebook.com/$ facebook'?然後什麼?你想要編輯哪部分? –

回答

0

有兩種方法可以做到這一點。一種是將屬性disabled="disabled"添加到它,或者將readonly添加到它。

兩者的工作方式不同。您需要的可能是disabled="disabled"屬性。

編輯

fiddle已更新。你應該包括以下的jQuery代碼:

$(document).ready(function() { 
    $("#inpt").val('http://www.facebook.com/$facebook'); 
    $("#inpt").on('change', function() { 
     var tval = $(this).val(); 
     $(this).val('http://www.facebook.com/' + tval.substring(24)); 
    }); 
}); 

您可以使用鍵盤事件來說,我自己在jQuery的初學者,因此這個基本的代碼。 :)另外,更新input標籤這樣的:

<input id="inpt" style="width:300px" type="text" name="facebook" value="Any VALUE YOU WANT"> 
+0

'$ facebook'部分需要可編輯! –

+0

在這種情況下,您需要JavaScript – hjpotter92

0

嘗試這樣

<tr> 
    <td> 
     Facebook: 
    </td> 
    <td> 
     <input style="width:300px" disabled="disabled" type="text" name="facebook" value="http://www.facebook.com/$facebook" /> 
    </td> 
</tr> 
+0

「$ facebook」部分需要可編輯! –

+0

那麼你應該添加一些JavaScript來控制這一點,CSS本身並不足矣 – webNeat

+0

看這裏:http://jsfiddle.net/FaxE4/21/ – webNeat

3

我想你是問有「http://www.facebook.com/」不可編輯,但可以編輯的餘網址是什麼?

類似下面的代碼片段將是最簡單的方法。如下CSS中的一些樣式的調整將使其更加可視化。

table { 
 
    width: 500px; 
 
} 
 
.fakey { 
 
    border: solid 1px; 
 
    color: #ccc; 
 
    font-family: sans-serif; 
 
    font-size: .9em;  
 
} 
 

 
.fakey input { 
 
    border: none; 
 
    outline: none; 
 
    font-family: sans-serif; 
 
    font-size: .9em; 
 
    width: 200px;  
 
}
<table> 
 
    <tr> 
 
     <td>Facebook:</td> 
 
     <td> 
 
      <div class="fakey">http://www.facebook.com/<input type="text" name="facebook" value="$facebook" /></div> 
 
     </td> 
 
    </tr>   
 
</table>

+0

我使用它的方式,但它的醜陋。我想在文本框內顯示'http:// www.facebook.com /'。 –

2

您可以使用JavaScript來迫使前綴不惜一切代價保持輸入。

$('input.facebookUrl').keyup(function(){ 
 
     if (
 
      ($(this).val().length > 0) && ($(this).val().substr(0,24) != 'http://www.facebook.com/') 
 
      || ($(this).val() == '') 
 
      ){ 
 
      $(this).val('http://www.facebook.com/');  
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<tr> 
 
    <td> 
 
     Facebook: 
 
    </td> 
 
    <td> 
 
     <input style="width:300px" type="text" class="facebookUrl" name="facebook" value="http://www.facebook.com/$facebook"> 
 
    </td> 
 
</tr>

0

我不知道如果這是你要找的,但它是我能做到的最好。

$("#input").keypress(function(ev){ 
     var value = "www.facebook.com/"; 
     var tval = this.value; 
     var c = ev.charCode || ev.keyCode; 
     this.selectionStart = this.selectionEnd = this.value.length; 
     if (tval.length == value.length && c == 8){ 
      ev.preventDefault(); 
     } 
     this.value = value + tval.substring(value.length); 
}); 

這裏的的jsfiddle:

http://jsfiddle.net/FaxE4/104/

0

你可以試試這個。

<tr> 
    <td> 
     Facebook: 
    </td> 
    <td> 
     <input style="width:300px" type="text" name="facebook" value="http://www.facebook.com/$facebook" readonly> 
    </td> 
</tr> 
相關問題