ASP.NET 프로젝트에서 네 가지 옵션과 기본 상태가있는 드롭 다운 목록이 있습니다. 팝업 대화 상자를 여는 버튼도 있습니다. ddl의 특정 옵션이 팝업 대화 상자를 필요로하지 않기 때문에 사용자가 특정 옵션을 선택하면 팝업을 여는 버튼을 비활성화하고 싶습니다. 팝업은 이미지에 연결된 onClick 이벤트를 통해 호출됩니다. 4 개의 ddl 옵션 중 2 개에 대해 onClick 이벤트가 실행되지 않도록 차단하려면 어떻게합니까?드롭 다운 목록 선택을 기반으로 클릭 이벤트를 방지하려면 어떻게합니까?
HTML 구조 :
<select class="selClass" id="selID" name="selName"><option value="">- Select -</option>
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
<option value="Option3">Option3</option>
<option value="Option4">Option4</option>
</select>
JQUERY :
$(function() {
if ($("#ddlID option:selected").text() == "- Select -")
$('img.popButton').button({ disabled: true })
else if ($("#ddlID option:selected").text() == "Option1")
$('img.itemgridimg').button({ disabled: false });
else if ("#ddlID option:selected").text() == "Option2")
$('img.itemgridimg').button({ disabled: true });
else if ("#ddlID option:selected").text() == "Option3")
$('img.itemgridimg').button({ disabled: true });
else if ("#ddlID option:selected").text() == "Option4")
$('img.itemgridimg').button({ disabled: false });
});
나는이 완전히 버튼의 onClick 이벤트를 비활성화 할 것이라고 기대했다
하지만 변경 사항 만 여기에 코드의 단순화 된 버전입니다 버튼의 시각적 상태 (UI 기반 클래스를 기반으로 함)이지만 팝업 창이 계속 활성화됩니다.
앞에서 설명한 것처럼 이미지 태그 내부에서 동적으로 생성 된 onClick 이벤트를 통해 팝업이 호출됩니다. 사용자가 옵션 2 또는 3 만 선택하면 팝업 이벤트가 시작되지 않게하려면 어떻게합니까?
UPDATE :
확실히 단순히 드롭 다운에서 특정 선택에 따라 버튼을 숨길 수있는 더 나은 방법입니다,하지만 지금은, 내가 다른 사업부가 보이지 않을 때 동적으로 새로운 이미지를 삽입하고 싶습니다. 나는 이것이 간단한 방정식 일 거라고 생각했는데 어디에서 ... 내가 숨겨져있어서 이전 div에 이미지를 삽입 할 수 없기 때문에 대체 이미지로 새 div를 어떻게 동적으로 삽입합니까? 내 업데이트 된 코드는 아래에 있지만 기능 때문에 오류가 발생했습니다 ... 제안 사항이 있습니까? 당신이 사용할 수있는,
$('img.popButton').on('click', function(){
return false;
});
나 :
버튼을 방지하기위한$('img.itemgridimg').hide();
$("[id][name*='Status']:eq(0)").change(function() {
if ($("[id][name*='Status']:eq(0) option:selected").text() == "- Select -")
$('img.itemgridimg').eq(0).hide();
$("<div/>",{
"html" : "<img src='../Images/btnOff.png'>"
}); // <---- bad code…need help
else if ($("[id][name*='Status']:eq(0) option:selected").text() == "Missing")
$('img.itemgridimg').eq(0).show();
else if ($("[id][name*='Status']:eq(0) option:selected").text() == "Not Applicable")
$('img.itemgridimg').eq(0).hide();
else if ($("[id][name*='Status']:eq(0) option:selected").text() == "Functional/Acceptable As Is")
$('img.itemgridimg').eq(0).hide();
else if ($("[id][name*='Status']:eq(0) option:selected").text() == "Needs Repair/Replace/Cleaning")
$('img.itemgridimg').eq(0).show();
});
의견을 보내 주셔서 감사합니다. 이 방법과 비슷한 방법을 시도했지만 숨겨진 이미지를 비활성 상태를 나타내는 다른 이미지로 바꾸는 방법을 알 수 없습니다. 어떤 제안? – Carlos
사용자가 클릭 할 수없는 비활성 이미지를 표시하는 이유는 무엇입니까? 어쨌든 그래픽 편집기 (예 : Photoshop)에서 기존 이미지를 변경하거나 CSS에서 불투명도를 적용하고 불투명 한 이미지의 스크린 샷을 찍은 다음 간단한 작업을 수행 할 수 있습니다. –
대체 이미지가 있지만 문제는이 프로젝트가 ASP.NET-MVC 프레임 워크에 있기 때문에 대체 이미지에 대해 새 클래스를 만들어 원본 이미지가 숨겨진 것과 동시에 해당 다이브 쇼를 만들어야합니다. . 나는 동적으로 대체 div를 삽입하는 함수를 작성해야한다 ... 이해가 되니? – Carlos