2012-02-28 7 views
0

私はこれをGoogleで検索し、SOとProgrammers.stackexchangeを参照して検索しました。データの問題を発生させずにテキストを視覚的に切り捨てます。

背景: 私は、ユーザーとデザイナーが、私は視覚的な魅力のために更新可能なフォームにテキストI出力を切り捨てしたいプロジェクトに取り組んでいます。彼らは、入力フィールドの最後までにテキストを切り捨てることを望まず、ボックス内のテキストをボックスの長さに合わせたいとします。

問題: 私は、文字列を切り捨てるする方法を知っていると私は私のスクリプトが更新されなかったフィールドを無視するように取得する方法を知っています。私のやり方が分からないのは、ユーザーがフィールドの更新を開始したときにデータの整合性を破壊しないようにすることです。フィールドはもはや完全な値を含んでいないので、データベースを更新するときに重大な欠陥が導入されるようです。

質問: は、私は、彼らが切り捨てられ、プレゼンテーションの面で何をしたいそれらを与える、その後、彼らはその入力を編集しようとした場合、各入力の全文が表示される場合がありますどのような方法があります...か私はちょうど戻って "あなたがしたいことはできません"と言う必要がありますか?私は他の提案にもオープンしています。 :)

+0

これをうまく検索できなかった理由は、個々の技術コンポーネントに分解していないという非常に広い要件があるからです。 –

答えて

1

私が正しく理解していれば、ここにいくつかの課題があります。比較的単純な、切り捨てられた形式のデータを表示する必要があります。また、編集したデータを完全に表示する必要があります。また、フォームが送信されたときに切り捨てられたデータをフルデータに置き換えて、ユーザーが行った変更を消去しないようにする必要があります。

jQueryでこれを行うことができます。切り捨てられたデータを表示しますが、データ全体を格納するには.data()を使用します。また、各フィールドに.data()を使用して、編集済みかどうかを知ることができます。フィールドがフォーカスを取得したら、完全なデータをサブクラス化します。フォームが送信されたら、各フィールドのフラグをチェックして、編集されているかどうかを確認します。それがあった場合は、そのままにしておきます。データが編集されていない場合は、フィールドの内容を削除し、全長データをスワップします。フォームを提出してください。

切り捨てられたデータを表示し、完全なデータを編集できるようにし、切り捨てられたデータが編集されていない場合は送信しないようにします。

+0

OK、これはもっと楽しいですね。私はちょうどjQueryの学習を始めましたが、これは私がまだ見てきたものに最も近いものです。私が少し掘り下げて、これを見てみましょう。 – AlexC

2

あなたはtext-overflow CSSプロパティを探している可能性があります。

+0

私はそれを正しく実装していないかもしれませんが、これはまだ限界内の単語の終わりではなく、ボックスの最後にクリッピングが発生するようです。 – AlexC

+0

@AlexCそれは遅く/早く、私の目は疲れていますが、私はあなたの質問にその要件を見たとは信じていません。 –

+0

申し訳ありませんが、私は明確ではありませんでした。これは、私が「入力フィールドの最後までにテキストを切り捨てて、ボックスの長さに合わせてテキストをボックスに収めたいのではない」と言ったときの意味です。私はテキストが既にスタイリングが不要な入力ボックスでは既に切れているので、私がはっきりしていると思っていました。私は将来もっと明確にしようとします。あなたが書いた時にあなたのために遅く/早かったら、いい眠りの後でこれを読んでほしい。 :) – AlexC

1

私は、切り捨てられた文字列と完全な文字列を含むプロパティを保持する行に沿って何かを考え、表示目的のために切り詰められた文字列を使用します。フォームフィールドをクリックすると、完全な文字列に置き換えられます。変更がない場合、入力の値は完全な文字列プロパティと一致します。そのプリンシパルに沿って、何も変更しなかった場合は、切り捨てられた文字列で置き換えられます。

何かを編集した場合は、編集したプロパティを動的に作成して、編集したバージョンの文字列を入力フィールドから保存できます。

基本的にこの時点では、単純なプロパティテスト/等価チェックが行われます。

+0

これは正しい行に沿ったものですが、私は「方法」の戦略を理解しようとしています。ありがとうございました – AlexC

+0

あなたの実装はすべてです。 1つのフォームフィールドだけで始めると、テキストをフォーマットするさまざまな方法を格納するオブジェクトが1つだけ必要になる場合があります。参照を容易にするために、オブジェクトを使用し、フォームフィールドの名前をキーに指定します。小さなものから始まり、いったんそれを働かせたら、実生活の状況に達するまで基本的なテストを展開してください。 – thescientist

関連する問題