C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.94014 の関連記事表示

<< 0 >>
■94014  Re[1]: JavaScript pushについて
□投稿者/ 魔界の仮面弁士 -(2020/03/04(Wed) 12:01:37)
    2020/03/04(Wed) 13:24:14 編集(投稿者)

    ここの掲示板では、新規投稿時に
    「半角カナは使用しないでください。文字化けの原因になります。]
    という注意書きが表示されていたかと思います。
    次回以降ご留意ください。


    No94013 (初 さん) に返信
    > オブジェクトは'push'プロパティまたはメソッドをサポートしていません。
    > とエラーメッセージが表示されます。

    状況からすると、『obj[this.id] === undefined』が false であり、
    かつ『obj[this.id] instanceOf Array』も false な状態なのだと思います。


    まずは、問題発生時の this.id の値を確認して、想定している通りの
    id 値が渡されているかをチェックしてください。(null や '' だったりとか…)

    次に、push を呼び出す直前に
     var sType = Object.prototype.toString.call(obj[this.id]);
    を呼び出して、上記が何という文字列を返すかを確認してみてください。
    文字列の内容は "[object Array]" なのか、あるいはそれ以外なのかが鍵です。


    > if(obj[this.id]===undefined)obj[this.id] = [];
    > if (checkFlg == false) {
    >  //新規登録画面初期表示
    >  obj[this.id].push($(this).val()); ←このpushでエラー

    上記では、obj[this.id] に対して配列がセットされる想定のコードになっているようですので、
    変数 obj が、どの時点で生成されているのかを確認しておきましょう。
    もしかしたらクロージャ指定を見誤っていて、別の obj 変数とスコープを勘違いしているかもしれません。

    obj 変数のスコープには問題が無いのだとしたら、次は配列インスタンスの管理。
    現状では、チェックボックスに対しては『配列』がセットされていて、
    > obj[this.id] = [];
    ラジオボタンに対しては『文字列』がセットされる想定のようです。
    > obj[this.id] = this.value;

    Array には push メソッドがありますが、
    String に push メソッドは無いですよね。
記事No.94013 のレス /過去ログ163より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -