Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   AJAX не работает с формой, которая выводится через js (https://javascript.ru/forum/dom-window/31639-ajax-ne-rabotaet-s-formojj-kotoraya-vyvoditsya-cherez-js.html)

wayzer 15.09.2012 13:33

AJAX не работает с формой, которая выводится через js
 
Здравствуйте, кто может, пожалуйста, помогите.
В общем, у меня в отдельном файле *.js выводится форма на главную страницу (index.php), в этой странице уже за ранее встроен код AJAX, который берет значения из формы и отправляет на сервер. Но значения он брать не хочет, а берет лишь если форма уже добавлена в саму страницу(мной через блокнот...).


function melee1(selclass){
var view = document.getElementById("create_bg"), click = document.getElementById("slot_melee1");

view.innerHTML = 'код формы';


};




<body>
<script type="text/javascript" src="js/view.js"></script>
<div id="create_bg">

Сюда он выводится



</div>
<div id="invis" style = "color: white" >  345
</div>
<script>

$("#crtw").click(
function() {
 $.post('echo.php', {
 typeitem: $("#typeitem").val(),
 typeweapon: $("#typeweapon").val(),
 damage1: $("#damage1").val(),
 damage2: $("#damage2").val(),
 damagerating: $("#damagerating").val(),
 aimstat: $("#aimstat").val(),
 strstat: $("#strstat").val(),
 cunstat: $("#cunstat").val(),
 willstat: $("#willstat").val(),
 endstat: $("#endstat").val(),
 prestat: $("#prestat").val(),
 powerstat: $("#powerstat").val(),
 ftpowstat: $("#ftpowstat").val(),
 accurstat: $("#accurstat").val(),
 critstat: $("#critstat").val(),
 surgstat: $("#surgstat").val(),
 armstat: $("#armstat").val(),
 defstat: $("#defstat").val(),
 shistat: $("#shistat").val(),
 absstat: $("#absstat").val(),
 alastat: $("#alastat").val(),
 expstat: $("#expstat").val(),
 colorcrystal: $("#colorcrystal").val(),
 hilt: $("#hilt").val(),
 mod: $("#mod").val(),
 enhancement: $("#enhancement").val(),
 requireslevel: $("#requireslevel").val() } , function(data) {

    $('#invis').html(data);
  }  );
} 
 
);

</script>





Работает, если только так


///////////////////////////////////////


<body>
<script type="text/javascript" src="js/view.js"></script>
<div id="create_bg">

Если форма уже в коде.

<text class="wf"><b><p style="color: #32a9bf;">Type Item:
<select name="typeitem" size="1" class="class-selector" id="typeitem" style="color: absolute">
<option value="#838383" style="color:#838383">Not Chosen</option>
<option value="#838383" style="color:#838383">Grey Item</option>
<option value="#02bc18" style="color:#02bc18" >Premium Item</option>
<option value="#1402bc" style="color:#1402bc">Prototype Item</option>
<option value="#67025a" style="color:#67025a">Artifacts Item</option>
<option value="#bc5102" style="color:#bc5102">Modify Item</option>
</select>
<br>
Type Weapon: <input name="typeweapon" type="text" id="typeweapon" class="nftdpole" value="LightSaber" >
<br>

Damage: <input name="damage1" type="text" id="damage1" class="pole" value="1" > - <input name="damage2" type="text" id="damage2" class="pole" value="5" >
<br>
Damage Rating: <input name="damagerating" type="text" id="damagerating" class="pole" value="28" >
<br>
<text style="margin:0% 2%; color: #8cb3ba;">Total Stats:</text>
</p>
<p style="margin:0% 4%; color: #edbc55">
<br>


 Aim + <input name="aimstat" type="text" id="aimstat" class="pole" value="" >
<br>
Strength + <input name="strstat" type="text" id="strstat" class="pole" value="" >
<br>
Cunning + <input name="cunstat" type="text" id="cunstat" class="pole" value="" >
<br>
Willpower + <input name="willstat" type="text" id="willstat" class="pole" value="" >
<br>
Endurance + <input name="endstat" type="text" id="endstat" class="pole" value="" >
<br>
Presence + <input name="prestat" type="text" id="prestat" class="pole" value="" >
<br>
Power + <input name="powerstat" type="text" id="powerstat" class="pole" value="" >
<br>
Force/Tech Power + <input name="ftpowstat" type="text" id="ftpowstat" class="pole" value="" >
<br>
Accuracy + <input name="accurstat" type="text" id="accurstat" class="pole" value="" >
<br>
Crit + <input name="critstat" type="text" id="critstat" class="pole" value="" >
<br>
Surge + <input name="surgstat" type="text" id="surgstat" class="pole" value="" >
<br>
Armor + <input name="armstat" type="text" id="armstat" class="pole" value="" >
<br>
Defense + <input name="defstat" type="text" id="defstat" class="pole" value="" >
<br>
Shield + <input name="shistat" type="text" id="shistat" class="pole" value="" >
<br>
Absorption + <input name="absstat" type="text" id="absstat" class="pole" value="" >
<br>
Alacrity + <input name="alastat" type="text" id="alastat" class="pole" value="" >
<br>
Expertise + <input name="expstat" type="text" id="expstat" class="pole" value="" >
<br>
</p>
</p>
<text style="margin:0% 2%; color: #8cb3ba;">Item Modifications</text><br>
<text style="margin:0% 4%; color: #1e73cd;">Color Crystal:<input name="colorcrystal" type="text" id="colorcrystal" class="pole" value="" ></text>
<br>
<text style="margin:0% 4%; color: #1e73cd;">Hilt: <input name="hilt" type="text" id="hilt" class="pole" value="" ></text>
<br>
<text style="margin:0% 4%; color: #1e73cd;">Mod: <input name="mod" type="text" id="mod" class="pole" value="" ></text>
<br>
<text style="margin:0% 4%; color: #1e73cd;">Enhancement: <input name="enhancement" type="text" id="enhancement" class="pole" value="" ></text>
<br>
<br><text style="margin:0% 2%; color: #32a9bf;">Requires level <input name="requireslevel" type="text" id="requireslevel" class="pole" value="" ></text>
<br>
<input type="Button" id="crtw" value="Apply">
</b>
</text>





</div>
<div id="invis" style = "color: white" >  345
</div>
<script>

$("#crtw").click(
function() {
 $.post('echo.php', {
 typeitem: $("#typeitem").val(),
 typeweapon: $("#typeweapon").val(),
 damage1: $("#damage1").val(),
 damage2: $("#damage2").val(),
 damagerating: $("#damagerating").val(),
 aimstat: $("#aimstat").val(),
 strstat: $("#strstat").val(),
 cunstat: $("#cunstat").val(),
 willstat: $("#willstat").val(),
 endstat: $("#endstat").val(),
 prestat: $("#prestat").val(),
 powerstat: $("#powerstat").val(),
 ftpowstat: $("#ftpowstat").val(),
 accurstat: $("#accurstat").val(),
 critstat: $("#critstat").val(),
 surgstat: $("#surgstat").val(),
 armstat: $("#armstat").val(),
 defstat: $("#defstat").val(),
 shistat: $("#shistat").val(),
 absstat: $("#absstat").val(),
 alastat: $("#alastat").val(),
 expstat: $("#expstat").val(),
 colorcrystal: $("#colorcrystal").val(),
 hilt: $("#hilt").val(),
 mod: $("#mod").val(),
 enhancement: $("#enhancement").val(),
 requireslevel: $("#requireslevel").val() } , function(data) {

    $('#invis').html(data);
  }  );
} 
 
);

</script>


Мне нужно, чтобы форма выводилась при клике на див, после при клике на input ajax брал из нее значения и отправлял на сервер.

wayzer 15.09.2012 16:29

Решил проблему, добавив input button в страницу.

tygeddar 15.09.2012 21:01

Я вижу вы используете jQuery, тогда вместо
$("#crtw").click(function(){
//somecode
});

можно использовать
$("p").live("click", function(){
      //somecode
    });


Тогда не придется переносить кнопку на страницу.


Часовой пояс GMT +3, время: 14:41.