2012-05-04 12 views
0

私は現在のセレクタのクラスの "username"をjqueryのdialog.problemのユーザが提供するユーザ名で置き換えたいと思っています。$(this).attr() jqueryのダイアログボタンの内側にはjqueryのを参照しますだって事前jqueryダイアログ内の要素のクラスを変更します

<form action="#" method="post" > 
</form> 
<p id="text" class="www.username.google.com"> click me </p> 
<div id="test" class="sandy" > 
    <input id="username" class="sandy1" /> 
</div> 

でjQueryのdialog.Thanksにおけるユーザー入力で単語のユーザ名を交換する方法を提案しdialog.Please ============ ========================================== ================

$('#text').click(function(){ 
    var provider_url= $(this).attr('class'); 
    $('.sandy').dialog({ 
     buttons: { 
      "OK": function() { 
       if($('#username').val() == '') { 
        $('#username').focus(); 
       } else { 
        var myvalue= $("#username").val(); 
        var nextval= replace(provider_url, username,myvalue); 
        $(this).dialog('close'); 
        alert(nextval); 
        $('form').append(nextval); 
        $('form').submit(); 
       } 
      } 
     } 
    }); 
}); 

jsfiddle code demoはここにhttp://jsfiddle.net/zCFD5/127/.Please助けてください

+0

これはPHPとどのように関係しますか? – fhugas

+0

私のHTMLコードはPHPで使用されていますが、簡略化のためにlatedを省略していますが、PHPに関連しないと言うことができます – user1364146

+0

#textをクリックすると、id "username"をユーザーが提供するテキストに置き換えますか? – Gaurav

答えて

1

これを試してみてください:

$('#text').click(function() { 
    var provider_url = $(this).attr('class'); 
    $('.sandy').dialog({ 
     buttons: { 
      "OK": function() { 
       if ($('#username').val() == '') { 
        $('#username').focus(); 
       } else { 
        var myvalue = $("#username").val(); 
        var nextval = provider_url.replace(/\.username\./, "." + myvalue + "."); 
        $(this).dialog('close'); 
        alert(nextval); 
        $('form').append(nextval); 
        $('form').submit(); 
       } 
      } 
     } 
    }); 
}); 

Example fiddle

あなたが本当にむしろclassに格納するよりも、このためdata属性を使用するべきであるのにそれは注目に値します。あなたはこれを行うには、あなたのバージョンのjQueryをアップグレードする必要があります。

はまた、私は大手を含めて、あなたは間違いなく、このようなケースでは、URLの右部分を交換しているように、正規表現で.末尾:http://www.username.superusername.com

1

まず、あなたの現在の問題は、 "this"参照の問題ではなく間違ったjs/jQueryコードが原因です。

var nextval= replace(provider_url, username,myvalue); 

書き込み:

代わりの

var nextval= provider_url.replace('username', myvalue); 

、それがより良い仕事します。

編集: Roryが述べたように、値を格納するためにclass属性を使用しないでください。それは良い方法ではありません。あなたがすでに最終的なURLを知っていれば、それをあなたのボタンコールバックにハードコードすることができます。あなたの文字列が変更される可能性があります、多分あなたのダイアログを作成する関数のパラメータで渡します。

+0

tahnks y'all Rory McCrossanとMordhak.iは私の間違いを持っ​​ていました。 – user1364146

関連する問題