草庐IT

php - ajax 响应的事件处理程序(多选下拉列表)

coder 2024-04-18 原文

检查此代码,当我单击本地复选框然后警报完成但是当单击 ajax 的响应时事件未发生。请更正此代码,以便所有复选框都提供点击响应。
这是index.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {	
$(":checkbox").click(function() {
    var xx= this.id;
    alert(xx);
 });

$( ".target" ).change(function() {
var category= $(this).val();
var datastring='category='+category;
 $.ajax({
         type:"POST",
         url:"next_page.php",
         data: datastring,
       dataType: 'html',
    success: function(html) {
 $('#subcat').html(html);
 
    	},
error: function(xhr) {
	if (xhr.statusText!='OK') {
		alert ("Oopsie: " + xhr.statusText);
		
	}      
   }
      });
       return false; 
}); });

</script>

</head>
<body>
<div id="stage2"  class="col-47-50">

<form >
<select class="target" >
<option value=" ">select a value</option>
<option value="1" > Applied Sciences</option>
<option value="2"> Business &amp; Economics</option>
<option value="3">Engineering &amp; Technology </option>
<option value="4">Environmental Sciences</option>
<option value="5"> Humanities &amp; Art </option>
<option value="6"> Law </option>
<option value="7"> Medical and Life Sciences </option>
<option value="8"> Natural Sciences</option>
<option value="9"> Social Sciences </option>
<option value="10"> School</option>
<option value="11"> others </option>
</select>
</form> 

<div id="subcat">
<!======= display on select anything from stage 2 ========== -->
 </div>      </div>
<div class="topbox">
here your selected values
<form class="stream_submit" name="stream_submit">
<div id="finally_stream"></div>
<label for="check1"><input type="checkbox" id="check1" />Marketing</label>
        <input type="checkbox" id="check2" /><label for="check2">Automotive</label>
<button id="stream_submit"> Next</button>
</form>
</div>       

</body>
</html>


这是 next_page.php

<script type="text/javascript" src="jquery-1.9.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	$(":checkbox").click(function() {
    var xx= this.id;
    alert(xx);
 });
$( ".stream" ).change(function() {
var category= $(this).val();	
var xx= $(this).find('option:selected').text();
if (category!='create_custom' && category!='') {
var dataAppend= "<input type='checkbox' id='"+category+"' checked=''"+
" value='"+xx+"'>"+"<label for='"+category+ "' >"+ xx +"</label><br>";
$("#finally_stream").append(dataAppend);
}
	});
	
	
	$( "#add_stream" ).click(function() {
var category= $("input[name=custom_stream]").val();
var xx='add_new_stream';
var dataAppend="<label for='"+category+ "' ><input type='checkbox' id='"+category+"' checked=''"+
" value='"+xx+"'>"+ category +"</label><br>";
$("#finally_stream").append(dataAppend);
	});
	
	

//===== dropdown change effect =========
$(".stream" ).change(function() {
var stream= $(this).val();
//alert(stream);
if (stream=='create_custom') {
	$('#create_custom').css("display", "block")
}else {
	$('#create_custom').css("display", "none")
}

});

});

</script>
<form >
<label for=""> Please select a sub category</label><br>
<select class="stream" multiple="multiple">
<option value="" name="select a value">select a value</option>
<option value="A"> a </option>
<option value="B"> b </option>

<option value="create_custom"> create custom </option>
</select><br>
<div id="create_custom" style="display:none"> 
<label for="" >  custom stream </label><br>
<input type="text" name="custom_stream" placeholder=" new custom stream"><br>
<input type="button" value="Add this" id="add_stream">
</div>
<input type="hidden" name="cat_id" value="'.$cat_id.'">

</form>
these are local check box
<label for="check1"><input type="checkbox" id="check1" />Marketing</label>
        <input type="checkbox" id="check2" /><label for="check2">Automotive</label>

最佳答案

您只绑定(bind)页面加载时存在的控件。

代替:

$(':checkbox').click(...) 

你会想要使用:

$(document).on('click', ':checkbox', ...)

这将允许您处理页面加载后创建的复选框的点击事件

关于php - ajax 响应的事件处理程序(多选下拉列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122015/

有关php - ajax 响应的事件处理程序(多选下拉列表)的更多相关文章

  1. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  2. ruby - RVM 使用列表[0] - 2

    是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论

  3. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  4. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  5. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  6. ruby-on-rails - 事件记录 : Select max of limit - 2

    我正在尝试将以下SQL查询转换为ActiveRecord,它正在融化我的大脑。deletefromtablewhereid有什么想法吗?我想做的是限制表中的行数。所以,我想删除少于最近10个条目的所有内容。编辑:通过结合以下几个答案找到了解决方案。Temperature.where('id这给我留下了最新的10个条目。 最佳答案 从您的SQL来看,您似乎想要从表中删除前10条记录。我相信到目前为止的大多数答案都会如此。这里有两个额外的选择:基于MurifoX的版本:Table.where(:id=>Table.order(:id).

  7. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  8. jquery - 如何将 AJAX 变量从 jQuery 传递到他们的 Controller ? - 2

    我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam

  9. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  10. ruby-on-rails - 事件管理员和自定义方法 - 2

    这是我在ActiveAdmin中的自定义页面ActiveAdmin.register_page"Settings"doaction_itemdolink_to('Importprojects','settings/importprojects')endcontentdopara"Text"endcontrollerdodefimportprojectssystem"rakedataspider:import_projects_ninja"para"OK"endendend我想做的是,当我单击“导入项目”按钮时,我想在Controller中执行rake任务。但是我无法访问该方法。可能是什

随机推荐