• ベストアンサー

attrでエレメントIDを変更したが実行できない

$("#update").prop("id","default_insert"); $("#default_insert").prop("value","新規作成"); 元エレメントID(update)から変更後のエレメントID(insert)に変更しましたが jqueryのclickが実行されなくて困っております。 エレメントIDがまるっきり変わっていないのかなと思って検証で確認は しましたが、確かにエレメントIDが変わっているが確認しております。 別のエレメントIDに変更しましたが、動作が変わりません。 どなたか大変恐縮ですが、解決策のご教示お願いできないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.1

そのコードは間違っていません。 そこ以外の場所が間違っているだけだと思います。 実際にコードはdefault_insertとinsertで違うとかありませんか?

sato965
質問者

補足

--------------------------------------------------------------------- [create-id.js] $(function() { $('a') .click(function() { var id = this.id; if(id == "create") { $(".delete").attr("class","default_insert"); $(".default_insert").attr("value","新規作成"); } }); }); --------------------------------------------------------------------- [insert-data.js] $(function() { $(".default_insert").click(function(){ alert("ssssss"); //return false; }); }); --------------------------------------------------------------------- ちなみに今作っているものです。もしよろしければご確認お願いします。 [ボタンをクリック]→[dialogが開かれる]→[新規作成のメニュをクリック] →[新規作成ボタンを押す]→[SSSS]が表示される [ボタンをクリック]→[dialogが開かれる]→[I3001をクリック]→[新規作成のメニュをクリック]→[新規作成ボタンを押す]→[SSSS]が表示されない http://low-cost-travel.chobi.net/start_dialog.php

その他の回答 (1)

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.2

質問文では「prop」を使っていますが、補足では「attr」になっています。 質問文では「id」を変更していますが、補足では「class」を変更しようしようとしているように見えます。 少なくともこの2点のせいで期待通りに動かないのだと思います。 まず、「attr」なんて絶対に使わないでください。これを使うことはまずありません。「prop」を使ってください。まだ「attr」を使用するサンプルを紹介しているサイトもありますが、そこは内容が腐っているゴミサイトなので二度と参照しないようにしましょう。 それからclassの変更にはaddClass, removeClassを使ってください。 もしかしたら他にも間違いがあるかもしれませんが、この2点を修正すれば少しは前進するのではないかと思います。

関連するQ&A

  • トランザクションとlast_insert_id

    トランザクション中にinsertする予定のテーブル(未コミット)のauto_increment値を取得することはできるのでしょうか。 以下のような処理を期待しているのですが、hoge1テーブルのauto_increment値が取得できずに困っております。last_insert_id に関わらず、hoge1テーブルのauto_increment値が取得できる方法があれば教えてください。 (1) トランザクション開始 (2) $sql=" INSERT INTO hoge1(name) value('あああ'); "; (3) ( ロールバック ) (4) $key=mysql_insert_id(); (5) $sql2=" INSERT INTO hoge2(hoge1_primary,age) value($key,'20歳'); "; (6) ( ロールバック ) (7) コミット (8) トランザクション終了 よろしくお願いします。 環境: php5,mysql5 (InnoDB)

    • ベストアンサー
    • MySQL
  • PDOのバインドをforeachでまとめて処理したいができません…。

    いつもお世話になっております。 PHP5.2.5 --------------------------- DB(フィールドは以下3項目) ・id(primary key) ・color ・num --------------------------- //DBにインサートするデータ群(配列に格納してある) $insert_array = array('color'=>'red','num'=>6); //================================================== // *フィールド名とそれに対応するデータをバインドする。 //================================================== //================================================== // *バインド:方法1 //================================================== foreach($insert_array as $field => $value){  //確認処理  //echo $field.'<br/>';  //echo $value.'<br/>';  //バインド(foreachで、1つずつバインドしていく)  $stmt->bindParam(':'.$field,$value); } //================================================== // *バインド:方法2(↓こちらだと上手くいく。) //================================================== /* $stmt->bindParam(':'.'color',$insert_array['color']); $stmt->bindParam(':'.'num',$insert_array['num']); */ //================================================== // *バインド後、「$stmt->execute();」した結果 // *DBにインサートされたものをprint_r()にて確認 //================================================== ★方法1 Array ( [id] => 15 [color] => 6 [num] => 6 ) //--------------------------- ★方法2 Array ( [id] => 16 [color] => red [num] => 6 ) //--------------------------- ★方法1の結果の、「 [color] => 6」って一体…?! 方法2のように、同じバインド処理を手書きで繰り返す分にはうまくいくのですが、 方法1のようなforeachでまとめて処理するやり方だとうまくいきません。 方法1の問題箇所をどなたか教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • DBへのinsert後のid(auto_increment)の取得

    お世話になってます。質問ばかりで恐縮ですが、お知恵をお借りしたく投函させて頂きます。 mysql_connect('localhost','root','******'); mysql_select_db('test'); $hiduke = date("y-m-d"); $sql = "insert into test_tb values(0, '$hiduke', …)";//0はフィールド名id(auto_increment属性) mysql_query($sql); 上記のようなコードにて、MySQLへデータをinsertしているのですが、このとき、auto_increment属性を持ったフィールド名(id)の番号を取得するには、どのようなコードになるのでしょうか? http://dev.mysql.com/doc/refman/4.1/ja/odbc-and-last-insert-id.html 上記マニュアルに、SELECT LAST_INSERT_ID()を使うと説明がありますが、実際のコード(PHPスクリプト)にするところまで結びつける事が出来ません。 id番号を取得し、その番号をセッションに代入させたいのです。 初歩的な質問ばかりと、お恥ずかしい限りですが、アドバイスのほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • スマートフォンからMySQLサーバーにインサート

    「HTML+javascript」のスマートフォンアプリから別サーバーのMySQLと連携させることを考えています。 サーバーの情報を取得することは問題なくできたのですが、サーバーにインサートする方法で悩んでいます。 【post.html】では、mysqlにインサートはされるものの、端末にはサーバーのinsert.phpがそのまま表示されてしまいます。 【post_kai.html】でfunction Check()を試したところ、送信ボタンを押した後に端末内のfinish.htmlが表示されましたが、残念ながらインサートが出来ていませんでした。 サーバーにインサートを完了させながら、その後は端末内のfinish.htmlを表示させるためにはどうすればいいでしょうか? ****************************** 端末側 ****************************** 【post.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <input type="button" name="button" value="送信" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【post_kai.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <script> function Check(){ document.form1.submit(); location.href="finish.html"; } </script> <input type="button" name="button" value="送信" onClick="Check();" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【finish.html】 <html> OKです <html> ****************************** サーバー側(mysql側) http://hoge.ne.jp/ ****************************** 【insert.php】 省略

  • CURDATE( )をフォーム内で使用するには?

    MySQLにフォームでインサートすることに悩んでいます。 INSERT INTO table (id,date) VALUES ('1234',CURDATE()) とするとmySQLにユーザーIDと本日の日付を入力できます。 これをフォームから下記の形で入力しようとすると、日付が入力されず、0000-00-00 になってしまいます。 <form action ="insert.php"> <input type="hidden" name="id" value='1234' > <input type="hidden" name="date" value="<?php print(CURDATE()); ?>" > <input type="button" value="submit" name="入力"> </form> value=""の中で本日の日付を指定する場合はどうすればいいかをご教示願います。

    • ベストアンサー
    • MySQL
  • 要素の、プロパティ一覧を出力させる方法

    初学者ですが、宜しくお願いいたします。 JavaScriptのプロパティにどんなものがあり、実際設定されているのか? から思い立ち、以下のソースを書いてみました。 <form> <textarea id="ta">てすと</textarea> </form> <script type="text/javascript"> //idの付いたオブジェクト毎に、プロパティ一覧を出力させる方法 var prop=document.getElementById("ta"); for(i in prop){ document.write(i+" = "+prop[i]+"<br>"); } </script> 上だと思惑通り上手く行きますが、 ボタンを押したときに、<p id="propatydata"></p>の位置に表示させる仕様に変えようと思い、以下のようにしてみました。 <form> <textarea id="na">てすと</textarea> <input type="button" id="kakunin" onclick="propatys('na');" value="要素のプロパティ一覧を出力" /> </form> <p id="propatydata"></p> <script type="text/javascript"> <!-- function propatys(id){ var props=document.getElementById(id); for(i in props){ document.write(i+" = "+props[i]+"<br>"); } } // --> </script> テンパリました。 chromeの検証で「Uncaught TypeError: Cannot convert object to primitive value」となります。 またページが丸ごと変更?されてしまうようです。IEでもfoxでも動作しない、またはページが丸ごと変更されてしまいます。 出来るだけ簡潔なソースにするため、「for~in」は使って書いた方が良いと思うのですが、英知をお持ちの方、ご教授お願い致します。

  • 【MySQL】auto_incrementの値を他のカラムにも入れたい

    MySQL初心者です。 以下のようなテーブルを作ろうかと考えています(PHP経由) ====================== id   filename 1    1.jpg 2    2.jpg   ・・・ ====================== 要はオートインクリメントで得たidを別のカラムでも活用したいのです。 とりあえず考えたのは、 1) insert で id を書き込む 2) last_insert_id() で id を得て update で filename を書き込む・・・ といったところですが、2段階作業というのが気になります。 「一発で」できる方法があるならそうしたいのですが無理でしょうか。 「無理」という回答でも結構です。 お詳しい方、よろしくお願いいたします。

  • PHPのプログラムを作って動作検証のブラウザはどれ

    PHPやjQueryを含んだプログラムを作って動作検証するには、どのブラウザがいいでしょうか。 実行中のソースの確認、Javascriptのエラー、httpヘッダーの確認などがしたいです。

    • 締切済み
    • PHP
  • クリックでボタンの画像を変更するjavascriptsで

    通常A画像のボタンが押された場合、B画像に変更すると言う動作を行いたいのですが、 document.f1.elements['b1'].src = "A.jpg"; この部分でエラーがでます。 input type="image"のsrcを指定するにはどうしたら良いでしょうか。 --------------------- <html> <script language="javascript"> <!-- function ImageChange(){ if(document.f1.elements['b1value'].value == 0){ document.f1.elements['b1'].src = "A.jpg"; document.f1.elements['b1value'].value = 1; }else{ document.f1.elements['b1'].src = "B.gif"; document.f1.elements['b1value'].value = 0; } } //--> </script> <body> <form name="f1"> <input type="image" name="b1" src="A.gif" onclick="ImageChange()" > <input type="hidden" name="b1value" value="0"> </form> </body> </html>

  • PHP+MySQLでのINSERTについての質問です。

    insert.html(入力フォーム)で <input type="text" name="company_nm" size="80"> を <form name="form1" method="post" action="insert_kakunin.php"> <input type="submit" value=" 次 へ "> で送って insert_kakunin.php(確認画面)で <input type="hidden" name="company_nm" value="<?= $company_nm ?>"> <?php print $_POST["company_nm"]; ?> で表示させます。 それを <form name="form1" method="post" action="insert.php"> <input type="submit" value=" 決 定 "> で insert.php(DB処理)で DB接続した後に $sql='INSERT INTO Sample (company_nm) VALUES("'.$_POST['company_nm'].'"); というふうにINSERTしたいんですが、VALUESに入力した値が入りません。 print $sql; print ($_POST['company_nm']); で見ても「""」となっています。 値の渡し方を教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう