0

我正在使用 ajax post 方法将值从 aspx 发送到 php.in,在将值插入 db 后,我在按钮单击事件中调用该 ajax 方法作为函数,但当我第二次单击时,我将调用脚本只有那个脚本在第一次点击时调用如何修复它?而且这种方法在Firefox中不起作用,但在第二次点击时在IE中起作用。

    <script type="text/javascript" language="javascript">
  function resetFields()
  {
     $(document).ready(function(){
    $("#<%=this.btnAdd.ClientID %>").click(function() {
    // we want to store the values from the form input box, then send via ajax below
    var ddlCompany = $("#<%=this.ddlCompany.ClientID %>").attr('value');
    var txtLocation = $("#<%=this.txtLocation.ClientID %>").attr('value');
    var txtDept = $("#<%=this.txtDept.ClientID %>").attr('value');
    var ddlIndustryType = $("#<%=this.ddlIndustryType.ClientID %>").attr('value');
    var txtDesg = $("#<%=this.txtDesg.ClientID %>").attr('value');
    var ddlFnalArea = $("#<%=this.ddlFnalArea.ClientID %>").attr('value');
    var txtExperience = $("#<%=this.txtExperience.ClientID %>").attr('value');
    var txtJobDesc = $("#<%=this.txtJobDesc.ClientID %>").attr('value');
    var txtEducation = $("#<%=this.txtEducation.ClientID %>").attr('value');
    var txtDesiredProfile = $("#<%=this.txtDesiredProfile.ClientID %>").attr('value');
    var txtPositionWanted = $("#<%=this.txtPositionWanted.ClientID %>").attr('value');
    var txtAddedBy = $("#<%=this.txtAddedBy.ClientID %>").attr('value');
    var txtContactName = $("#<%=this.txtContactName.ClientID %>").attr('value');
    var txtEmailid = $("#<%=this.txtEmailid.ClientID %>").attr('value');
    var txtContactno = $("#<%=this.txtContactno.ClientID %>").attr('value');
      $.ajax({
      type: "POST",
       url: "http://172.16.126.32/Riyas/marggroup.com/get-current-openings.php",
      data: "ddlCompany=" + ddlCompany + "& txtLocation="+ txtLocation+"& txtDept="+ txtDept+"& ddlIndustryType="+ ddlIndustryType+"& txtDesg="+ txtDesg+"& ddlFnalArea=" + ddlFnalArea+"& txtExperience="+ txtExperience+"& txtJobDesc="+ txtJobDesc+"& txtEducation="+ txtEducation+"& txtDesiredProfile="+ txtDesiredProfile+"& txtPositionWanted="+ txtPositionWanted+"& txtAddedBy="+ txtAddedBy+"& txtContactName="+ txtContactName+"& txtEmailid="+ txtEmailid+"& txtContactno="+ txtContactno,
      success: function(response){
        $('div.success').html(response);
      }
    });
       return false;
     });
    });
  }
  </script>

代码隐藏:

protected void btnAdd_Click(object sender, EventArgs e)
  {
c.MyQuery("insert into tblHrims_currentOpeningsNew(nvrDesignation,nvrCompany,nvrExperience,nvrLocation,nvrEducation,nvrDepartment,nvrIndustryType,nvrFnalArea,nvrJobDesc,nvrDesiredProfile,nvrContactPerson," +
" nvrContactNumber,nvrEmailId,nvrWantedPositions,nvrAddedBy,dttAddedon) values('" + txtDesg.Text.Trim().Replace("'", "") + "','" + ddlCompany.SelectedItem.Text + "','" + txtExperience.Text + "','" + txtLocation.Text + "','" + txtEducation.Text + "'," +
" '" + txtDept.Text.Trim().Replace("'", "") + "','" + ddlIndustryType.SelectedItem.Text + "','" + ddlFnalArea.SelectedItem.Text + "','" + txtJobDesc.Text.Replace("'", "''") + "','" + txtDesiredProfile.Text.Replace("'", "") + "'," +
" '" + txtContactName.Text.Trim().Replace("'", "") + "','" + txtContactno.Text.Trim().Replace("'", "") + "','" + txtEmailid.Text.Trim().Replace("'", "") + "','" + txtPositionWanted.Text.Trim().Replace("'", "") + "'," +
" '" + txtAddedBy.Text.Trim().Replace("'", "") + "','" + c.GetValue("select getdate()") + "')");
      string strID = c.GetValue("select max(intsno) from tblhrims_currentopeningsNew");
Page.ClientScript.RegisterStartupScript(this.GetType(), "reset", " resetFields();", true);
}
4

2 回答 2

1

尝试:

$("#&lt;%=this.btnAdd.ClientID %>").live('click', function() {

希望能帮助到你

于 2011-12-27T11:12:33.897 回答
0
  1. 您可以onjquery. live, bind and delegate在 jquery 1.7 中已弃用。
  2. 你不需要使用,attr('value')而是val()会工作。
  3. 包含datatype = 'html'在 ajax 调用中以表示response将在html.

  4. 您还保留$(document).ready(function(){了函数内部resetFields。这是不需要的。

  5. 从元素中删除函数resetFields调用。button

然后尝试使用下面的代码,我希望它会帮助你

String scriptString = "<script type=\"text/javascript\">$(document).ready(function(){

    $('#<%=this.btnAdd.ClientID %>').on('click',function(){
    var ddlCompany = $('#<%=this.ddlCompany.ClientID %>').val();
    var txtLocation = $('#<%=this.txtLocation.ClientID %>').val();
    var txtDept = $('#<%=this.txtDept.ClientID %>').val();
    var ddlIndustryType = $('#<%=this.ddlIndustryType.ClientID %>').val();
    var txtDesg = $('#<%=this.txtDesg.ClientID %>').val();
    var ddlFnalArea = $('#<%=this.ddlFnalArea.ClientID %>').val();
    var txtExperience = $('#<%=this.txtExperience.ClientID %>').val();
    var txtJobDesc = $('#<%=this.txtJobDesc.ClientID %>').val();
    var txtEducation = $('#<%=this.txtEducation.ClientID %>').val();
    var txtDesiredProfile = $('#<%=this.txtDesiredProfile.ClientID %>').val();
    var txtPositionWanted = $('#<%=this.txtPositionWanted.ClientID %>')val();
    var txtAddedBy = $('#<%=this.txtAddedBy.ClientID %>').val();
    var txtContactName = $('#<%=this.txtContactName.ClientID %>').val();
    var txtEmailid = $('#<%=this.txtEmailid.ClientID %>').val();
    var txtContactno = $('#<%=this.txtContactno.ClientID %>').val();

    $.ajax({
      type: 'POST',
      url: 'http://172.16.126.32/Riyas/marggroup.com/get-current-openings.php',
      data: 'ddlCompany='+ddlCompany+'&txtLocation='+txtLocation+'&txtDept='+txtDept+'&ddlIndustryType='+ddlIndustryType+'&txtDesg='+txtDesg+'&ddlFnalArea='+ddlFnalArea+'&txtExperience='+txtExperience+'&txtJobDesc='+txtJobDesc+'&txtEducation='+txtEducation+'&txtDesiredProfile='+txtDesiredProfile+'&txtPositionWanted='+txtPositionWanted+'&txtAddedBy='+txtAddedBy+'&txtContactName='+txtContactName+'&txtEmailid='+txtEmailid+'&txtContactno='+txtContactno,
      datatype = 'html',
      success: function(response){
        $('div.success').html(response);
        }
      });
   });
 });<s/cript>";

Page.ClientScript.RegisterStartupScript(this.GetType(), "reset", scriptString, true);
于 2011-12-27T11:20:09.123 回答