您是否知道如何使用編輯模式創建表單?有關詳細信息:假設我有一個包含5個或6個字段的表單,其中包含「保存」和「取消」按鈕。如果我保存表單,它將顯示沒有文本字段的純文本格式,並且會出現名爲「編輯」的按鈕。當我點擊「編輯」時,表單將是可編輯的。可能嗎?使用編輯模式創建表單
0
A
回答
2
完整的示例,只要你想可以處理多達輸入的Fileds。(沒有選擇,文本區域.. )
該代碼是基於純JavaScript和css3的現代瀏覽器編寫的。
在Chrome上測試。
隱藏和顯示用CSS3按鈕,
保存默認值應用它們的取消,對輸入按鈕
響應。
如果有任何問題..只是問
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Modern Form</title>
<style>
label{display:block;}
form input{border:none;outline:none;box-sizing:border-box;}
form.invert input{border:1px solid rgba(0,0,0,0.2);outline:none;}
form>button:nth-of-type(1){
color:green;display:none;
}
form>button:nth-of-type(2){
color:red;display:none;
}
form>button:nth-of-type(3){
color:yellow;display:inline-block;
}
form.invert>button:nth-of-type(1){
display:inline-block;
}
form.invert>button:nth-of-type(2){
display:inline-block;
}
form.invert>button:nth-of-type(3){
display:none;
}
</style>
<script>
(function(W){
var D,form,bts,ipt;
function init(){
D=W.document,previous=[];
form=D.getElementsByTagName('form')[0];
bts=form.getElementsByTagName('button');
ipt=form.getElementsByTagName('input');
form.addEventListener('submit',save,false);
bts[1].addEventListener('click',cancel,false);
bts[2].addEventListener('click',edit,false);
}
function save(e){
e.preventDefault();
form.classList.remove('invert');
var l=ipt.length;
while(l--){
ipt[l].readOnly=true;
};
previous=[];
//send your info here
}
function edit(e){
e.preventDefault();
form.classList.add('invert');
var l=ipt.length;
while(l--){
previous[l]=ipt[l].value;
ipt[l].readOnly=false;
}
}
function cancel(e){
form.classList.remove('invert');
e.preventDefault();
var l=ipt.length;
while(l--){
ipt[l].value=previous[l];
ipt[l].readOnly=true;
}
}
W.addEventListener('load',init,false);
})(window)
</script>
</head>
<body>
<form>
<label>A:<input readonly></label>
<label>B:<input readonly></label>
<label>C:<input readonly></label>
<button>Save</button><button>Cancel</button><button>Edit</button>
</form>
</body>
</html>
PS:在處理函數可以合併成一個更大的功能...但我認爲這種方式很容易理解
0
以下是非常簡單的示例如何做到這一點。
- 這只是給你一個想法 - 有很多方法可以解決這個問題。
- 作品在Chrome中,在其他瀏覽器沒有經過充分測試(例如:假設2像素邊框)
- 您做些什麼取決於你的UX和瀏覽器要求
HTML
<span>Example</span>
<div class="example">
<form>
<label for="ex1fld1">Field 1:</label><input type="text" name="ex1fld1" readonly value="Hello"></input>
<label for="ex1fld2">Field 2:</label><input type="text" name="ex1fld2" readonly></input>
<input type="button" value="Edit"></inpu>
</form>
</div>
CSS
div {
margin-bottom: 20px;
margin-top: 10px;
}
input[type="text"] {
font-size: 14px;
}
input[type="text"][readonly] {
border: 2px solid rgba(0,0,0,0);
}
腳本(jQuery的使用在這裏,但不要求這樣的事情)
var readonly = true;
$('.example input[type="button"]').on('click', function() {
$('.example input[type="text"]').attr('readonly', !readonly);
readonly = !readonly;
$('.example input[type="button"]').val(readonly ? 'Edit' : 'Save');
return false;
});
相關問題
- 1. Rails HTML編輯器來創建表單
- 2. 在Delphi中創建表單編輯器
- 3. 創建表單編輯功能php
- 4. 使用node.js在Lightbox /模式窗口中創建「編輯」窗體
- 5. 定製的jqGrid模式編輯表單
- 6. 添加/編輯表單設計模式
- 7. 使用MongoMapper創建一個用於編輯嵌入式文檔的表單
- 8. 創建簡單的編輯
- 9. 使用單向鏈表創建編輯方法
- 10. Django的 - 創建表單編輯模型的多個實例
- 11. CakePHP - 創建一個表單,編輯同一模型的多行
- 12. 如何使用Rails 4在編輯表單中創建關聯的模型?
- 13. 使用引導模式呈現編輯部分表單
- 14. 如何使用AngularJS的ui.router實現創建/編輯選項卡式表單?
- 15. 使用簡單循環創建模式?
- 16. 表視圖編輯模式
- 17. 表 - 編輯模式(Sql 2008)
- 18. 使用正則表達式編輯電話列表模式
- 19. 用相同的表單和模板創建,獲取和編輯用戶信息
- 20. 以編程方式創建/編輯模板的最佳方法
- 21. ASP.NET MVC用戶控件創建和編輯模式設置
- 22. 哪些設計模式適用於項目編輯,創建等
- 23. 以編程方式創建win表單?
- 24. 如何在編輯模式下使用清單模型?
- 25. 使用vba以編程方式在模塊中創建表格
- 26. 爲什麼我的Oracle APEX DML表單停留在編輯模式下而不回到創建模式?
- 27. Laravel表單創建公開模式
- 28. 如何編輯在Angular2上使用單個表單創建的項目?
- 29. 用於創建和編輯的具有不同表單的Drupal模塊
- 30. 用Angular創建/編輯/查看相同的表單
是的,這是可能的 – Sebas
任何鏈接啓動?請幫助先生。 –
看看:[我怎樣才能在Web窗體中只讀域?](http://www.cs.tut.fi/~jkorpela/forms/readonly.html)作爲開始的地方。 – dc5