0

Jqueryは初めてです。

同じボタンのクリックで値を挿入および編集したい.

function save(){

if($('#job').val()==" "){
    if(value!=false){
    var data = {        
        "names": $('#names').val(),            
        "server": $('#server').val()
    };
    $.ajax({
        type: 'post',
        url: "/insert",
               });
  }
}
else{

    if(value!=false){
    var data = {

    };
    $.ajax({
        type: 'post',
        url: "/edis",
                   }
    });
  }
}
}

コードの重複を削除する方法と、このコードを圧縮する方法はありますか

4

4 に答える 4

2

更新しました

function saveToDB(){
var value= pageValidation();
var job;
var msg;

if(value!=false){

var data = {
        "jobid": $('#jobid').val(),
        "names": $('#names').val(),
        "os": $('#OS').val(),
        "browser": $('#browsers').val(),
        "version": $('#version').val(),
        "scripttype": $('#testscripts').val(),
        "server": $('#server').val()
    };

if($('#jobid').val().trim() == ""){
    job = "/insertJobs";
    msg = "job insertion success";
    delete data['jobid'];
}
else{
    job = "/editJobs";
    msg = "job Updated succesfully!!";
}



    $.ajax({
        type: 'post',
        url: job,
        dataType: "json",
        data: data,
        success: function (response) {
            console.log(msg);
            console.log(response);
            displayjobs();
        }
    });
  }
}
于 2013-08-27T09:10:58.893 に答える
1

1)メソッド 内の変数のスコープを拡張します。saveToDB

var data = {        
        "names": $('#names').val(),
        "os": $('#OS').val(),
        "browser": $('#browsers').val(),
        "version": $('#version').val(),
        "scripttype": $('#testscripts').val(),
        "server": $('#server').val()
    };
var urlLink;
var message;

2)あなたのコードから、value変数が重要な役割を果たしているようです。最初の条件としてそれを作成します。

3) 割り当て中のデータ オブジェクトは存在しないjobため、この状態で追加できます。

if($('#jobid').val()==" "){
 urlLink = "/insertJobs";
 message = "job insertion success";
}
else {
 data.job = $('#jobid').val();  // Add job to data object
 urlLink = "/editJobs";
 message = "job Updated succesfully!!";
}

最後に、コードは次のようになります

function saveToDB(){
    var value= pageValidation();
    if(value!=false){
        var data = {        
                "names": $('#names').val(),
                "os": $('#OS').val(),
                "browser": $('#browsers').val(),
                "version": $('#version').val(),
                "scripttype": $('#testscripts').val(),
                "server": $('#server').val()
            };  
        if($('#jobid').val()==" "){
         urlLink = "/insertJobs";
         message = "job insertion success";
        }
        else {
         data.job = $('#jobid').val();
         urlLink = "/editJobs";
         message = "job Updated succesfully!!";
        }           
        $.ajax({
            type: 'post',
            url: urlLink,
            dataType: "json",
            data: data,
            success: function (response) {
                console.log(message);
                console.log(response);
                displayjobs();
            }
        });
      }
}
于 2013-08-27T09:18:28.827 に答える
1
function saveToDB() {
    var value= pageValidation();
    var type = "update";
    if ($('#jobid').val()==" ") {   //set the flag
        type = "insert"
    }
    if(value!=false) {
        var data = {        
            "type": type, //See this, insert/update, check this on server side
            "names": $('#names').val(),
            "os": $('#OS').val(),
            "browser": $('#browsers').val(),
            "version": $('#version').val(),
            "scripttype": $('#testscripts').val(),
            "server": $('#server').val()
        };
        if (type == "update") {
            data.jobid = $('#jobid').val();
        }
        $.ajax({
            type: 'post',
            url: "/insertJobs",
            dataType: "json",
            data: data,
            success: function (response) {
                if (type == "insert") {
                    console.log("job insertion success");
                } else {
                    console.log("job Updated succesfully!!");
                }
                console.log(response);
                displayjobs();
            }
        });
    }
}
于 2013-08-27T09:05:13.020 に答える