Eric Martin による Simple Modal フォームを使用しているときに、テキスト フィールドの値を取得する際に問題があります。は$('#pcs_'+id).val();
何も返さないようです (以下の変数 _t は未定義です)。
「ポップアップ」モーダル フォームで生成される HTML パーツ:
<form><input type="text" id="pcs_25" value="1"> pcs </form>
<a id="add_basket_25" onclick="return add2Basket(25);" class="button basket_list options_true" href="/emarket/basket/put/element/25/">add to basket</a>
JS の部分:
function add2Basket(id){
var _t = $('#pcs_'+id).val();
_t = $.trim(_t);
var rege = /^[\d]{1,}$/; // numbers
if(rege.test(_t)){ //do something
var add2cartlink = $('#add_basket_'+id).attr('href');
add2cartlink += _t;
// window.location.href = add2cartlink;
return false;
}
else {
alert("Only numbers allowed!");
return false;
}
}
これはモーダル フォームを超えて正常に機能し、モーダル フォーム コンテナ内でのみ問題が発生することに注意してください。
過去にそのようなことに遭遇した人はいますか?
追加$('#pcs_25').val()
:またはのように明示的に呼び出された場合$('#pcs_25').attr('value')
、返されるのは HTML 部分にハードコードされた値、つまり です<input type="text" id="pcs_25" value="1">
。テキストフィールドに手動で入力された値を無視しているようです。
解決済み: Simple Modal がフォームの入力テキスト フィールドを結果の html にコピーする前に推測する必要があったためid='pcs_25'
、結果の html ページには実際には 2 つの要素がありました。そのため、jquery セレクターにはより高い精度が必要でした。 $('.simplemodal-data #pcs_'+id).val()
問題を解決しました。