2012-02-24 13 views
1

でテキストフィールドを開くことができ、私はカスタムボタンを作成すると私は、これまでのところ、これを持っている:SalesForceの:カスタムボタン

{!REQUIRESCRIPT("/soap/ajax/8.0/connection.js")} 

var lead = new sforce.SObject("Lead"); 
lead.id = "{!Lead.Id}"; 
lead.OwnerId = "ID"; 
lead.Status = "STATUS"; 

var result = sforce.connection.update([lead]); 

if (result[0].getBoolean("success")) 
{ 
    // Refresh window 
    window.location.reload(); 
} 
else 
{ 
    alert("Error saving lead"); 
} 

このすべてが完璧に動作し、私が望む変更を行うだけでなく、どのようなIそれはあなたがそれをダブルクリックしたかどうのように、ユーザーが入力することができるように、ポップアップ表示する

lead.Reason__c 

テキストフィールド:ボタンがクリックされたときである、と何が保存される前に、私が欲しい起こるしたいですボタンをクリックした理由

私のようなコードを試してみました:

lead.Reason__c.open 
lead.Reason__c.edit 

をしかし、運がなかったしていると、かなりちょうどこれで暗闇の中で刺しています。私は誰かが役立つことを願って

、 おかげですべての

答えて

1

あなたが唯一のフィールドを持っているので、フォームを必要としない、私はあなたがjavascriptののプロンプトボックスを使用し、推薦する、それがnull(ヌル以外のものを返した場合 - >ユーザー)は、キャンセルをクリックあなたの魔法

{!REQUIRESCRIPT("/soap/ajax/8.0/connection.js")} 

var reason = prompt("Enter reason", ""); 
if (reason != null) { 
    var lead = new sforce.SObject("Lead"); 
    lead.id = "{!Lead.Id}"; 
    lead.OwnerId = "ID"; 
    lead.Status = "STATUS"; 
    lead.Reason__c = reason; 

... 
} 

PSの操作を行います。私はまた、8.0よりも「新鮮」のAjaxツールキットを使用することをお勧めします:)私たちは今、24.0です。私は彼らが古いものを廃止することは疑うが、あなたは決して知らない。

+0

新しいツールキットについてのヒントをありがとう!私はそれを更新します!あなたの助けてくれてありがとう、私は同様の方法で解決策を整理することに目を向けます。 – lukehillonline

1

実際にダブルクリックをシミュレートする正しい方法は、ダブルクリックイベントを要素にディスパッチすることです。 this pageには、これを行う方法に関する優れたリファレンスがあります。私はSFDC編集フィールドにダブルクリックをディスパッチするカスタムボタンを作成でき、ユーザーがフィールド自体をダブルクリックしたかのように機能することを確認できます。迅速かつ汚い例:

var evObj = document.createEvent('MouseEvents'); 
evObj.initMouseEvent('dblclick', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null); 
document.getElementById('lea13_ilecell').dispatchEvent(evObj); 

は、しかし、それは、あなたが知っているようにあなたは、フィールドをダブルクリックするとので、あなたのためのサウンドアプローチであることを行っていない「保存」と「キャンセル」ボタンがにレンダリングされていますユーザーは必要な方法で行動を無効にすることはできません。あなたはjQueryの魔法を使ってこれをハックすることができますが、私はmmixのアプローチを思い出しました。要件が単一のテキストフィールドを超えて拡張されている場合は、ダイナミックなHTML/CSSダイアログボックスやVisualForceを組み込む必要があるかもしれませんが、必要なものに基づいて、迅速なアプローチが最も簡単です。

+0

ありがとうございました!私はこれを調べます。必要なのは、テキストフィールドが自動的に開かれることだけです。ユーザーは必要な情報を入力して保存することができます。もう一度、ありがとう! – lukehillonline

+0

あなたがやろうとしていることがあれば、これはいい方法かもしれません。 「lea13_ilecell」を編集しようとしているフィールドセルのHTML IDに置き換える必要があります(これを取得するには、編集ページのソースを参照してください;カスタムフィールドは環境IDを環境に変更する可能性があるので注意してください)。 – jkraybill