JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » AJAX討論區 » ZK  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 Textbox多行問題 求解
popo21423





發文: 4
積分: 0
於 2013-08-28 11:57 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請問我目前Textbox例如有設定rows="4" cols="35"
且CSS有設定英文自動斷行,但因為CSS的自動斷行並沒有補換行符號。
我的需求是他如果設定rows="4"就真的只能輸入4行。若超過就要拋警訊。
但若CSS沒有補換行符號時,我有辦法抓到目前該Textbox內有幾Row的資料嗎??
麻煩各位了...Disapproved
想了好幾天還是無解...
有試過用JavaScript去寫,在正向的時候是OK的,但當使用者是用複製一大篇文章進來或是回頭改資料時,我就沒辦法幫他補換行符號了...


reply to postreply to post
作者 Re:Textbox多行問題 求解 [Re:popo21423]
roytsang





發文: 620
積分: 1
於 2013-08-28 16:37 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟不才,只能做到以下的,IE和ff 都support,chrome 好像不support:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
  <head><title>Test</title></head>
  <body >
    <script type="text/javascript">
      var keynum, lines = 1;
    
    function limitCopyAndPaste(obj,e)
    {
     var pastedText = undefined;
      if (window.clipboardData && window.clipboardData.getData) { // IE
        pastedText = window.clipboardData.getData('Text');
      } else if (e.clipboardData && e.clipboardData.getData) {
        pastedText = e.clipboardData.getData('text/plain');
      }  
      orgData=obj.value+pastedText;  
      orgDataLine=orgData.split("\n");
      if (orgDataLine.length<=obj.rows)
      { 
       lines +=orgDataLine.length 
         return true;
      }
      else
      {  
        alert("Over limit");
        return false; 
        }
      }
      function limitLines(obj, e) {
        // IE
        if(window.event) {
          keynum = e.keyCode;
        // Netscape/Firefox/Opera
        } else if(e.which) {
          keynum = e.which;
        }
 
        if(keynum == 13) {
          if(lines > obj.rows) {
          alert("Over limit");  
            return false;
          }else{
            lines++;
          }
        }
      }
      </script>
    <textarea rows="4" onkeydown="return limitLines(this, event)" onpaste="return limitCopyAndPaste(this,event)"></textarea>
  </body>
</html>


roytsang edited on 2013-08-28 17:40
reply to postreply to post
作者 Re:Textbox多行問題 求解 [Re:roytsang]
popo21423





發文: 4
積分: 0
於 2013-08-28 22:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
謝謝大師的解答,但小弟程度還比較弱一點,參考了很久
但還有幾點不太懂,目前CSS會自動英文斷句,但他的斷句只是就畫面上來說是對的
實際上他背後是沒有"\r\n"的,所以我們勢必需幫他加上換行符號,目前我是做在onKeyUp的時候。
正向的輸入,我目前的處理上是沒問題的,但若回頭輸入,則會發生換行符號又錯亂的問題,
例如:一行最多35個字 當User 輸入到32個字時 輸入空白,並打上APPLE,APPLE是會自動換到下一行的,但若回頭在32 後面有突然輸入了幾個字,整個換行會比較混亂一點。
還有可以請問一下若再ZK上面,我要如何使用onpaste呢?我目前是直接覆寫元件的JavaScript所以我沒有zul可以操作。

不好意思,上面講的有點亂,等明天早上我在把我目前完成的code貼上來給你過目。感謝


reply to postreply to post
作者 Re:Textbox多行問題 求解 [Re:popo21423]
roytsang





發文: 620
積分: 1
於 2013-08-29 09:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
老實說我不懂zk,只懂javascript,不過我在google 這裡找到那個:

http://forum.zkoss.org/question/68668/ways-to-get-a-simple-html-elements-value-from-client-to-server-and-process-it-in-java/

關於換行的問題,我找到這個:
http://www.w3schools.com/tags/att_textarea_wrap.asp

希望幫到你


roytsang edited on 2013-08-29 09:46
reply to postreply to post
作者 Re:Textbox多行問題 求解 [Re:popo21423]
jimmyshiau





發文: 9
積分: 0
於 2014-05-12 22:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
可以用 client attribute

1
2
3
4
5
6
7
8
9
10
11
12
13
<zk xmlns:ca="client/attribute">
  <script type="text/javascript">
   function limitCopyAndPaste(obj, e){
     console.log(obj);
   }
   function limitLines(obj, e) {
     console.log(obj);
   }
  </script>
  <textbox rows="4" cols="35" 
    ca:onkeydown="return limitLines(this, event)"
    ca:onpaste="return limitCopyAndPaste(this, event)"/>
</zk>


http://books.zkoss.org/wiki/ZUML_Reference/ZUML/Namespaces/Client_Attribute


reply to postreply to post
» JWorld@TW »  AJAX討論區 » ZK

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8