2010-11-18 3 views
0

連絡先を既に持っているアドレス帳があります。そのため、開いている連絡先のリンクは、ページが読み込まれたときにそのページに表示されます。これらのフィールドにデータを入力するために現在の連絡先を追加したくない場合、そのフィールドにデータを入力すると、[連絡先に追加]ボタンが表示されます。 setInterval関数は、ユーザーがこれらの入力フィールドに新しいデータを入力しているかどうかを確認するのに適していますか?もしそうなら、dojoコードをどのように書くのですか?dojoを使用して要素を置き換えることを決定するためにsetIntervalを使用できますか?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title> 
     SAP 
    </title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/dojo/1.3.2/dojo/dojo.xd.js" djConfig="parseOnLoad: true"> 
    </script> 
    <script type="text/javascript"> 

     dojo.addOnLoad(function(){ 
      dojo.require("dijit.form.Button"); 
      dojo.require("dijit.form.TextBox"); 
     }); 

    </script> 
    <style type="text/css"> 
     #prelims { 
      position: relative; 
      float: left; 
      margin-right: 10px; 
      margin-bottom: 5px 
     } 

     #addToContacts { 
      position: relative; 
      float: left; 
      display: none; 
     } 

     #nameWrap { 
      position: relative; 
      clear: left; 
     } 

    </style> 
</head> 
<body> 
    <form> 
     <div id="prelims" class="checksVertical"> 
      <span id="" class="button-link pill-btn"> 
       <span class="hasHover"> 
        <a id="open-contacts" class="buttons" target="" href="#"> 
         Open Contacts 
        </a> 
       </span> 
      </span> 
     </div> 
     <div id="addToContacts" class="checksVertical"> 
      <span class="button-link pill-btn"> 
       <span class="hasHover"> 
        <div id="addNewContact" class="hide"> 
         <form method="post" id="addContactHide"> 
          <input class="buttons" id="addContact" type="submit" value="Add Contact" /><input type="hidden" id="hiddenFName" name="tFName" value=""/><input type="hidden" id="hiddenLName" name="tLName" value=""/><input type="hidden" id="hiddenCompany" name="tCompany" value""/> 
         </form> 
        </div> 
       </span> 
      </span> 
     </div> 
     <div id="nameWrap"> 
      <div class="input-inline"> 
       <label id="for-tFName" for="tFName"> 
        <span class="required"> 
         * 
        </span>First Name 
       </label> 
       <div class="input-text-wrapper input-text-lg"> 
        <span class="input-cap-left"> 
        </span> 
        <span class="input-field"> 
         <input type="text" id="tFName" name="tFName" maxlength="50" /> 
        </span> 
        <span class="input-cap-right"> 
        </span> 
       </div> 
      </div> 
      <div class="input-inline last"> 
       <label id="for-tLName" for="tLName"> 
        <span class="required"> 
         * 
        </span>Last Name 
       </label> 
       <div class="input-text-wrapper input-text-lg"> 
        <span class="input-cap-left"> 
        </span> 
        <span class="input-field"> 
         <input type="text" id="tLName" name="tLName" maxlength="50" /> 
        </span> 
        <span class="input-cap-right"> 
        </span> 
       </div> 
      </div> 
      <div class="clearfix"> 
      </div> 
     </div> 
     <div id="tCompanyWidget"> 
      <label id="for-tCompany" for="tCompany"> 
       <span class="required"> 
        * 
       </span>Company Name 
      </label> 
      <div class="input-text-wrapper input-text-lg"> 
       <span class="input-cap-left"> 
       </span> 
       <span class="input-field"> 
        <input type="text" id="tCompany" name="tCompany" maxlength="50" /> 
       </span> 
       <span class="input-cap-right"> 
       </span> 
      </div> 
     </div> 
    </form> 
</body> 

答えて

1

私はのonChangeまたは入力フィールドのonBlurイベントのイベントのいずれかが、その後のsetIntervalを使う方が良いと思います。これらは通常の入力html DOMノード上に存在するため、dojoを使用する必要はありません。

var show_add_to_contact = function(){ 
    dojo.byId("prelims").style.display = "none"; 
    dojo.byId("addToContacts").style.display = "block"; 
}; 

は、その後、あなたがHTMLのDOMノード上で直接それを使用することができ、次のいずれか:

には、いくつかの入力フィールドに再利用できるJavaScript関数を書く

<input type="text" id="tFName" name="tFName" maxlength="50" onChange="show_add_to_contact();" /> 

またはあなたが割り当てることができますダイアログボックスを作成するときにプログラムで作成します。

new dijit.form.TextBox({"onChange":show_add_to_contact,"name":"tFName"}, "tFName"); 
関連する問題